• Matthias Clasen's avatar
    Redo csd window-dragging · 2232430a
    Matthias Clasen authored
    The window-dragging code had a number of issues: The code was
    starting a drag on every button press, never bothering to cancel
    them. This leads to the odd hand cursor occurring between the two
    clicks to maximize. We relied on GDK's multi-click detection, which
    gives us triple-clicks when we really want sequences of double-clicks.
    Lastly, we didn't propery restrict double-click handling to the primary
    button, so e.g. if you had a window on an empty workspace, double-right
    click on the titlebar would maximize it, which is not intended.
    This commit solves all three problem by a doing our own double-click
    detection, and only starting a drag when the pointer goes out of
    'double-click range'. We change the way dragging is implemented for
    menubars and toolbars to just letting events bubble up, so they
    get the same behaviour as the titlebar. To make this work, we
    have to select for pointer motion events in a few more places.
gtkwindowprivate.h 4.65 KB