1. 18 Jul, 2019 1 commit
  2. 16 Jan, 2017 7 commits
    • Emmanuele Bassi's avatar
      gdk/x11: Force GLES when using EGL X11 · b485c519
      Emmanuele Bassi authored
      This is necessary on certain embedded devices, to avoid going through
      the wrong API.
      b485c519
    • Emmanuele Bassi's avatar
      gdk/x11: Add conditional support for EGL-X11 · e4280ea1
      Emmanuele Bassi authored
      On certain platforms we need to use EGL X11 and OpenGL ES if we want to
      get through to the hardware accelerate GL driver, and avoid the software
      rasterizer inside Mesa.
      
      Since this is a per-platform decision that cannot be resolved at run
      time, we need to add a configure-time option that switches from GLX to
      the X11 native support for EGL.
      e4280ea1
    • Juan Pablo Ugarte's avatar
      gl: Convert pixel data from rgba to argb. · 7c394e82
      Juan Pablo Ugarte authored
      Cairo expects data to be in ARGB format, but on OpenGL ES we can only
      read data back from the buffer in RGBA chunks. This means we need to
      flip the channels after reading the whole image.
      7c394e82
    • Emmanuele Bassi's avatar
      gl: Add private glReadPixels() wrapper · f0317594
      Emmanuele Bassi authored
      For the software fallback path in gdk_cairo_draw_from_gl() we use
      glReadPixels() to read the contents of a framebuffer object in order to
      put it inside a Cairo image surface we can blend on the CPU. In order to
      do that, we use GL_PACK_ROW_LENGTH, which is only available in desktop
      GL, GLES 3.0, or if the GL_EXT_unpack_subimage extension is present.
      Older GLES 2.0 drivers would just be out of luck.
      
      Instead of bailing out, let's implement unpacking line by line, to
      adjust for the Cairo image surface stride, like we do when uploading
      textures.
      
      In order to avoid complicating an already big function, we should wrap
      our glReadPixels() call with our own wrapper that performs checks and
      calls the appropriate functions with the appropriate data.
      f0317594
    • Emmanuele Bassi's avatar
      glarea: Don't use GL_RGBA8 with OpengGL ES · bc9a86ae
      Emmanuele Bassi authored
      The GL_RGBA8 internal format is available only on desktop GL.
      bc9a86ae
    • Emmanuele Bassi's avatar
      Use the generic names for glFramebuffer functions · 87224172
      Emmanuele Bassi authored
      We can rely on libepoxy to resolve them using the appropriate function
      names from extensions, if we're running on legacy platforms.
      87224172
    • Olivier Fourdan's avatar
      wayland: avoid 0 width/height anchor rectangle · 9a5ffcd1
      Olivier Fourdan authored
      Passing a rectangle with zero width or height to xdg_shell-v6
      set_anchor_rect() will cause a protocol error and terminate the client,
      as with gedit when pressing the Win key.
      
      Reason for this is because the rectangle used to set the anchor comes
      from gtk_text_layout_get_iter_location() which uses the pango layout
      width/height, which can be empty if there is not character at the given
      location.
      
      Make sure we don't use 0 as width or height as an anchor rectangle to
      avoid the protocol error, and compensate the logical position of the
      given rectangle if the size is changed, so that the actual position
      remains as expected by the client.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=777176
      9a5ffcd1
  3. 15 Jan, 2017 1 commit
  4. 13 Jan, 2017 2 commits
  5. 11 Jan, 2017 1 commit
  6. 10 Jan, 2017 4 commits
    • Rui Matos's avatar
      gdk/wayland: Handle non-existant gsettings keys · 99abc636
      Rui Matos authored
      Since we're a library, crashing on gsettings keys, whose presence is out
      of our control, isn't appropriate.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=775846
      99abc636
    • Rui Matos's avatar
      gdk/wayland: Add support for the gtk-enable-primary-paste gsetting · 22b1e0b6
      Rui Matos authored
      The gsetting was recently added so that we can have this configurable
      on the wayland backend too.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=775846
      22b1e0b6
    • LRN's avatar
      GDK W32: Use keyboard hook to detect AeroSnap combinations better · eece8a7d
      LRN authored
      Windows WM handles AeroSnap for normal windows on keydown. We did this
      on keyup only because we do not get a keydown message, even if Windows WM
      does nothing with a combination. However, in some specific cases it DOES
      do something - and we have no way to detect that. Specifically, winkey+downarrow
      causes maximized window to be restored by WM, and GDK fails to detect that. Then
      GDK gets a keyup message, figures that winkey+downarrow was pressed and released,
      and handles the combination - by minimizing the window.
      
      To overcome this, install a low-level keyboard hook (high-level ones have
      the same problem as normal message loop - they don't get messages when
      Windows WM handles combinations) and use it to detect interesting key combinations
      before Windows WM has a chance to block them from being processed.
      
      Once an interesting combination is detected, post a message to the window, which
      will be handled in due order.
      
      It should be noted that this code handles key repetitions in a very crude manner.
      
      The downside is that AeroSnap will not work if hook installation function call fails.
      Also, this is a global hook, and if the hook procedure does something wrong, bad things
      can happen.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=776031
      eece8a7d
    • LRN's avatar
      GDK W32: Handle CapsLock as part of the key shift level · ca792960
      LRN authored
      Instead of using some kind of flawed logic about modifying a keypress result
      when CapsLock is toggled, just add a CapsLock shift level (and all derived
      shift levels, i.e. Shift+CapsLock and CapsLock+AltGr and Shift+CapsLock+AltGr)
      and query Windows keyboard layout API about the result of keypresses involving
      CapsLock.
      
      Keysym table is going to be (roughly) twice as large now, but CapsLock'ed
      keypresses will give correct results for some keyboard layouts (such as
      Czech keyboard layout, which without this change produces lowercase letters
      for CapsLock->[0,2,3,4...] instead of uppercase ones).
      
      Keymap update time also increases accordingly.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=165385
      ca792960
  7. 09 Jan, 2017 7 commits
  8. 08 Jan, 2017 1 commit
  9. 07 Jan, 2017 4 commits
  10. 06 Jan, 2017 3 commits
  11. 05 Jan, 2017 3 commits
  12. 04 Jan, 2017 4 commits
  13. 31 Dec, 2016 1 commit
    • Daniel Boles's avatar
      scrolledwindow: Fix func summary being cut off in bindings using doxygen · 7960e941
      Daniel Boles authored
      ...which treats the first '.' in doc comments as the end of the summary.
      So, e.g., in gtkmm, get_kinetic_scrolling() is currently summarised as
      "Changes the behaviour of @scrolled_window wrt." Not very informative!
      
      No need for a period there & anyway, the phrase "wrt to" is superfluous,
      and we have space to actually say "with regard to", so just do that now.
      7960e941
  14. 30 Dec, 2016 1 commit