1. 19 Mar, 2018 1 commit
  2. 16 Mar, 2018 3 commits
  3. 13 Mar, 2018 1 commit
    • LRN's avatar
      GDK W32: send a DELETE selection when using LOCAL selection protocol · 577f1a99
      LRN authored
      This was not needed before, but now it seems to be necessary for
      some reason. The code is just an adjusted copy of the appropriate
      piece of the OLE2 protocol code, sending GDK_SELECTION_REQUEST.
      
      The rest is just fixing the fallout, allowing LOCAL protocol to pass
      the functions it wasn't supposed to pass before.
      
      Closes #82
      577f1a99
  4. 12 Mar, 2018 1 commit
  5. 08 Mar, 2018 1 commit
  6. 04 Mar, 2018 1 commit
    • Tomasz Miąsko's avatar
      Fix introspection for GdkEventTouchpadPinch and GdkEventTouchpadSwipe. · 5d258bf3
      Tomasz Miąsko authored
      When using type annotations, the ABI of type being annotated and a new
      type introduced from annotation should match.
      
      In case of enumerations, the most common ABI, and probably the only one
      currently used in practice with gtk, corresponds to -fno-short-enums
      compiler option. It uses int as the underlying type of enum, bumping it
      up to unsigned int, long int or unsigned long int, in that order, when
      necessary.
      
      Thus, when annotating a field of integer type with an enum type, it is
      never correct to annotate field smaller than int, because it changes the
      ABI from perspective on introspection.
      
      The gint8 phase field in GdkEventTouchpadSwipe and GdkEventTouchpadPinch
      structures have been previously annotated in such a way, and this change
      removes this annotation to restore ABI compatibility.
      
      Size of structures before (which does not match C):
      
      ```
      >>> Gdk.EventTouchpadPinch.__info__.get_size()
      104
      >>> Gdk.EventTouchpadSwipe.__info__.get_size()
      88
      ```
      
      Size of structures after (which does match C):
      
      ```
      >>> Gdk.EventTouchpadPinch.__info__.get_size()
      96
      >>> Gdk.EventTouchpadSwipe.__info__.get_size()
      80
      ```
      
      Fixes issue #57.
      5d258bf3
  7. 01 Mar, 2018 1 commit
  8. 27 Feb, 2018 1 commit
    • Christoph Reiter's avatar
      macos: Fix gdk_quartz_drag_context_get_dragging_info_libgtk_only symbol export · 5c0d242e
      Christoph Reiter authored
      The header got included without config.h being included first which resulted in the
      wrong _GDK_EXTERN macro being used. As a result some symbols weren't exported
      and starting a DnD action would crash in the linker.
      
      This patch adds config.h includes in all places where clang complained about
      _GDK_EXTERN redefinitions.
      
      See #32 for more info.
      5c0d242e
  9. 16 Feb, 2018 1 commit
  10. 14 Feb, 2018 2 commits
    • Carlos Garnacho's avatar
      gdk/wayland: Add GdkDisplay call to query available globals · 3146f29d
      Carlos Garnacho authored
      The internal known_globals hashtable is used to carry accounting for
      interfaces that depend on others (as ordering is not guaranteed), extend
      its usage so it also keeps track of unimplemented interfaces (here at
      least).
      
      The API call will then use this to allow querying the globals offered by
      the compositor, it will be useful to determine whether we can use
      text-input protocols or should fallback to other IMs.
      3146f29d
    • Daniel van Vugt's avatar
      Fix irregular gdk_frame_clock_get_frame_time · c6901a8b
      Daniel van Vugt authored
      This fixes stuttering in animations that rely on the regularity of
      gdk_frame_clock_get_frame_time.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=787665
      
      BEFORE
      gdkgears:
      58 FPS and visibly stuttering
      gnome-maps on a 59.95Hz monitor:
      "paint" g_get_monotonic_time +17278μs, gdk_frame_clock_get_frame_time +17278μs
      "paint" g_get_monotonic_time +17449μs, gdk_frame_clock_get_frame_time +17426μs
      "paint" g_get_monotonic_time +17620μs, gdk_frame_clock_get_frame_time +17600μs
      
      AFTER
      gdkgears:
      60 FPS and smoother
      gnome-maps on a 59.95Hz monitor:
      "paint" g_get_monotonic_time +18228μs, gdk_frame_clock_get_frame_time +16680μs
      "paint" g_get_monotonic_time +15010μs, gdk_frame_clock_get_frame_time +16680μs
      "paint" g_get_monotonic_time +17134μs, gdk_frame_clock_get_frame_time +16680μs
      c6901a8b
  11. 12 Feb, 2018 1 commit
  12. 11 Feb, 2018 4 commits
  13. 08 Feb, 2018 1 commit
    • Carlos Garnacho's avatar
      wayland: Improve EOF detection when reading selections · 08f60dbc
      Carlos Garnacho authored
      g_input_stream_read_bytes() roughly provides the same guarantees
      than g_input_stream_read() wrt the number of bytes being possibly
      read (i.e. it being a best effort, but no real guarantees).
      
      Instead, rely on the 0-len read that we'd get at the end of the
      transfer.
      
      Fixes clipboard/DnD transfers possibly being cut short, resulting
      on "Broken pipe" errors on the other side.
      
      #1
      
      Closes: #1
      08f60dbc
  14. 30 Jan, 2018 1 commit
  15. 13 Jan, 2018 1 commit
  16. 09 Jan, 2018 1 commit
  17. 07 Jan, 2018 1 commit
  18. 26 Dec, 2017 1 commit
  19. 17 Dec, 2017 1 commit
  20. 15 Dec, 2017 1 commit
  21. 14 Dec, 2017 1 commit
  22. 08 Dec, 2017 2 commits
  23. 03 Dec, 2017 1 commit
  24. 30 Nov, 2017 6 commits
    • Carlos Garnacho's avatar
      gdk: Always emit motion after enter · 3c40b217
      Carlos Garnacho authored
      After a pointer emulating GDK_TOUCH_END event triggering a fake leave
      notify with GDK_CROSSING_TOUCH_END mode, pointer_under_window will be
      unset, which will make the next motion/touch_update event to trigger
      an enter notify event again.
      
      Up till there, that's fine, however the motion event is just consumed
      in favor of the just synthesized enter notify event. This is unexpected
      to clients like spice-gtk that will only update coordinates from motion
      events, sending both enter and motion is more consistent with X11 and
      will make them happy.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=791039
      3c40b217
    • Carlos Garnacho's avatar
      gdk/wayland: Restrict shortcut inhibition to keyboard grabs on toplevels · e7e047fc
      Carlos Garnacho authored
      It is unlikely that popup windows will contain anything that requires this
      (popup menus being more interested in redirecting keyboard focus to
      themselves). OTOH popup implementations that just grab the keyboard are
      commonplace enough, it makes sense not to trigger inhibition for these.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=789268
      e7e047fc
    • LRN's avatar
      GDK W32: Remove an unnecessary type check · 8df7f88b
      LRN authored
      No idea why it's here, the hash table can store any kind of data,
      there's no reason why it wouldn't be able to store an old X string type.
      Might be a holdout from the old days, when strings were handled in
      a special way (stored directly in the clipboard?).
      
      https://bugzilla.gnome.org/show_bug.cgi?id=786509
      8df7f88b
    • LRN's avatar
      GDK W32: Make sure drag source window is not NULL · c329940c
      LRN authored
      This prevents GTK from throwing a bunch of warnings when it tries
      to get drag source window -> screen of that window -> ipc widget for that screen,
      and then tries to attach a signal handler to that widget.
      
      Specifically, this happens when we get a DnD move from another
      application.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=786509
      c329940c
    • LRN's avatar
      GDK W32: Special handling for DELETE requests · 3fd23fcf
      LRN authored
      1) Ensure that any DELETE requests from the target are sent to GDK, even if
         both the source and the target are in the same process and it
         is therefore possible to use a shortcut and call the handler directly
         in GTK layer
      2) Ensure that target GDK doesn't do anything when GTK asks it to send
         a DELETE request, just report back immediately (the code up the stack
         does not check for successfullness when request is DELETE, so not giving
         it any data is OK).
      
      The source code already synthesizes a DELETE request, so that side is
      also taken care of.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=786509
      3fd23fcf
    • LRN's avatar
      GDK W32: Preserve the target value for change_property() · 56074fbf
      LRN authored
      We need to know the target atom value to know when we need to
      do something with side-effects (since side-effects are expressed via
      special target values). Previously, the code side-stepped that by looking
      at the data type (which was rather unique for the one side-effect
      target that we supported, signalled by the TARGETS target),
      but for the DELETE target that seems to be no longer an option, hence the new
      field to carry this information past the convert_selection() routine.
      
      This prevents GDK from throwing a warning when trying to convert
      a DELETE target, which has no format or data objects set.
      
      The side-effects for the DELETE target happen earlier, in GTK layer.
      By the point it gets to change_property(), it's a no-op.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=786509
      56074fbf
  25. 29 Nov, 2017 3 commits
  26. 27 Nov, 2017 1 commit