xpra icon
Bug tracker and wiki

Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#545 closed enhancement (fixed)

honour double-click time from client

Reported by: Antoine Martin Owned by: alas
Priority: minor Milestone: 0.15
Component: core Version:
Keywords: Cc:

Description (last modified by Antoine Martin)

  • nix clients are probably handled automatically already through the xsettings synchronization mechanism (should be easy to test with appres XTerm)
  • on win32 we have GetDoubleClickTime
  • on osx, it looks like we want:
    extern UInt32 GetDblTime(void)
    

from Carbon.framework (was not easy to find)

For the last 2, we probably want to pass the value with the hello packet just like we do for the DPI, and the server can then inject it automatically.

Extra difficulty: toolkits do their own thing, see xset: setting double-click speed for plain X11 applications.

  • multiClickTime ?
  • gtk-double-click-time ?

Does modifying any of those settings after the application has started have any effect?

Found in the pygtk docs: gtk.gdk.Screen.get_setting: The get_setting() method returns the value of the desktop-wide setting (specified by setting) such as double-click time for the screen.

Funny that for setting the value, we don't call it on screen but on the whole display! (which is fine for us, just odd): gtk.gdk.Display.set_double_click_time: 'The set_double_click_time() method sets the double click time (two clicks within this time interval count as a double click and result in a gtk.gdk._2BUTTON_PRESS event). Applications should not set this, it is a global user-configured setting.'

Change History (6)

comment:1 Changed 5 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

comment:2 Changed 5 years ago by Antoine Martin

Description: modified (diff)

comment:3 Changed 5 years ago by Antoine Martin

Owner: changed from Antoine Martin to alas
Status: assignednew

Done in r7613 (+r7614 for osx, worthy of its own changeset). This is related to the work on dpi #163 and sub-pixel hinting #559.

As per the commit message details, please verify that:

  • the bug report export data includes double click info
  • xpra info includes it too
  • that the values are correct for double click time (in milliseconds, available on win32 and X11 clients) and double click distance (X11 clients only)
  • that the values are actually honoured by applications running in xpra, you can use this test application for that: test_double_click.py

Notes:

  • some applications may need to be started after the client connects to get the settings... nothing we can do about that apart from filing tickets with those apps so they are fixed, they should pick up the settings updates when they are made
  • when changing the double click time on the client, you will need to connect again for the server to pick up the new setting with win32 clients (X11 clients should get updated on the fly)
  • in case of problems, please report log output with -d xsettings

comment:4 Changed 5 years ago by J. Max Mena

Did some testing of a Win7 client against a Fedora 20 server (r7632 on both):

  • Double/triple click works
  • Changing the mouse settings in Windows changes the time in the .py file you supplied.
    • Changing it while Xpra is connected is not reflected in the supplied Python file; A user must disconnect and reconnect for the change in double click time to be reflected
  • Xpra info includes the following 2 lines:
    client.double_click.distance=True
    client.double_click.time=True
    
  • The debug export has the following in the System.txt :
gui.double_click.distance        : -1
gui.double_click.time            : 480

If there's any more in-depth testing you need done; pass the ticket my way and I'll hop on it between classes.

comment:5 Changed 5 years ago by Antoine Martin

Resolution: fixed
Status: newclosed

Thanks maxmylyn!

Closing. (for future reference, those options and their default values are documented here: XSettingsRegistry

comment:6 Changed 5 years ago by Antoine Martin

Milestone: future0.15

(setting milestone)

Note: See TracTickets for help on using tickets.