| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
A follow up on the previous patch. We should use DestroyWindow
directly since it has a different calling convention than
the expected callback for g_clear_pointer
|
|
|
|
|
| |
DestroyWindow expects a different calling convenction so
we endup getting an error at runtime
|
|
|
|
|
| |
The clipboard uses a hidden window to get some specific events.
The window was created but never destroyed on dispose.
|
| |
|
|
|
|
|
|
|
|
| |
When moving/scrolling a child window we can't use the current clip
region to limit what is invalidated, because there may be a pixel
cache that listens for changes outside the clip region. Instead
invalidate the entire area and rely on the invalidation code to limit
the repaint to the actually visible area.
|
| |
|
|
|
|
|
|
|
| |
Those are not references to other objects, and the device will be mostly
useless if those can't be set again anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=756625
|
|
|
|
|
|
|
|
|
|
| |
Those won't have ABS_MT_* axes, so won't be reported has having
XITouchClassInfo. Fallback on these to checking whether abs x/y axes are
available. After the Wacom checks, any remaining device with absolute axes
should be touchscreens, and GDK_SOURCE_MOUSE does indeed just make sense on
devices with relative axes.
https://bugzilla.gnome.org/show_bug.cgi?id=757358
|
|
|
|
| |
This way 0.3 isn't printed as 0.29999999999999
|
|
|
|
| |
Signed-off-by: William Hua <william.hua@canonical.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of handling WM_DISPLAYCHANGE on every GdkWindow, only handle
it on an ad-hoc hidden window we create when opening the display.
This has two reasons:
1) we want emit the display::size-changed signal even if there are no
gtk windows currently open
2) we want to emit the signal just once and not once for every window
https://bugzilla.gnome.org/show_bug.cgi?id=757324
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure the wayland backend sets a new geometry when the client
resizes itself, otherwise the compositor won't be notified and may
revert to the old size on state changes.
Thanks to Jasper St. Pierre <jstpierre@mecheye.net> who pointed out the
problem in gtk+.
bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=755051
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
gdk_pixbuf_get_from_window() paints the given window onto a new cairo
surface. Create that new surface with the same device scale as the
window so that the result is not scaled down on hidpi screens.
https://bugzilla.gnome.org/show_bug.cgi?id=757147
|
| |
|
|
|
|
|
| |
GTK_WINDOW_POPUP sets the GdkWindow type to GDK_WINDOW_TEMP, so use
that in GDK, not the GTK symbol which doesn't exist there.
|
|
|
|
|
|
|
| |
Currently used by GtkTreeView to map windows without changing focus. We
can't map this as a popup, because popup implies focus change.
https://bugzilla.gnome.org/show_bug.cgi?id=756780
|
|
|
|
|
|
|
|
|
|
| |
If a GtkMenu (or something else that is mapped as a xdg_popup) tries to
use a subsurface window as a parent, it will be terminated by the
compositor due to protocol violation. So to avoid this, if a parent
window is not a xdg_popup or xdg_surface, i.e. a wl_subsurface, then
traverse up the transient parents until we find the right popup parent.
https://bugzilla.gnome.org/show_bug.cgi?id=756780
|
|
|
|
|
|
| |
In order to make it easier to add/remove in future commits.
https://bugzilla.gnome.org/show_bug.cgi?id=756780
|
|
|
|
|
|
|
|
|
|
| |
It makes sense that you should be able to type numbers that are
correctly formatted and parsable according to the current locale,
using just the keypad. This patch makes it so by translating
GDK_KEY_KP_Decimal to the decimal separator for the current locale,
instead of hardcoding a '.'.
https://bugzilla.gnome.org/show_bug.cgi?id=756751
|
|
|
|
|
|
|
|
|
| |
gdkcursor-quartz.c uses the instancetype keyword, which doesn't seem to
be supported in the version of Objective C that Snow Leopard uses.
Replacing that keyword with the thing it represents makes it build.
Patch by Ryan Hendrickson,
http://bugzilla.gnome.org/show_bug.cgi?id=756770
|
| |
|
|
|
|
| |
We generally use ->next directly.
|
|
|
|
| |
We generally use ->next directly.
|
|
|
|
| |
We generally just use ->next directly.
|
|
|
|
|
|
|
|
| |
Tooltips tend to be placed on top of a parent surface with a given
relative coordinate, and without any input focus. So lets map them as
subsurfaces.
https://bugzilla.gnome.org/show_bug.cgi?id=756496
|
|
|
|
|
|
|
|
|
| |
Restructure the mapping procedure so that its known up front what the
expected way mapping is to be done (subsurface, popup or stand alone),
and warn if it fails to actually map in such a way (for example a popup
without a parent or device grab, a tooltip without a parent).
https://bugzilla.gnome.org/show_bug.cgi?id=756496
|
|
|
|
| |
Replace a unref-and-unset combination with g_clear_object.
|
|
|
|
|
|
|
| |
This is a variable holding a ref to an object, so it is
a great case to use g_set_object and g_clear_object.
# Please enter the commit message for your changes. Lines starting
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=756160
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Using a NULL GAppInfo with g_app_launch_context_get_display() will
generate a critical warning in gio.
Use the display name instead as we don't have any valid GAppInfo to pass
to g_app_launch_context_get_display().
bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=756439
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GDK_NOTIFY_ANCESTOR would happen when the pointer crosses across a direct
parent/child. However nonlinear events are more likely, specially when
the pointer moves across toplevels (either different apps, or menus being
popped up over the pointer position).
This makes popping up comboboxes and other menus that fall over the pointer
position possible. With the previous detail the GtkMenu code misinterpreted
the crossing event, making it think the button release coming right after
should dismiss the popup, which made menus just flash on the screen unless
you kept the button pressed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the shared context is in legacy mode, or if the creation of a core
profile context failed, we fall back to an EGL context in compatibility
mode.
Since we're relying on a fairly new EGL implementation for Wayland, we
don't fall back to the older EGL API, and instead we always require the
EGL_KHR_create_context extension.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
| |
Explain why this function is available, and why you may need it.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
|
| |
For testing purposes, we may want to force the creation of legacy GL
contexts via an environment variable.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
|
|
|
|
|
| |
If GLX has support for the GLX_ARB_create_context_profile extension,
then we use the GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB; if it does
not, we fall back to the old glXCreateNewContext() API.
We use the shared GdkGLContext to decide whether the GLX context should
use the legacy bit or not.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
|
|
|
|
|
| |
If we're using modern GLSL, then we should stop using deprecated
modifiers, like 'varying' and 'attribute', as well as deprecated global
variables, like 'gl_FragColor'.
On the other hand, with legacy contexts we should be using older GLSL
shaders, to maximize compatibility.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
| |
We need to know if we're using a legacy GL context in various places.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We want to have the ability to fall back to legacy GL contexts when
creating them. In order to do so, we need to store the legacy bit on the
GdkGLContext, as well as being able to query it.
Setting the legacy bit from outside GDK is not possible; we cannot
create GL contexts in 3.2 core profile *and* compatibility modes at the
same time, and if we allowed users to select the legacy mode themselves,
it would break the creation of the GdkWindow's paint GL context.
What we do allow is falling back to legacy GL context if the platform
does not support 3.2 core profiles — for instance, on older GPUs or
inside virtualized environments.
We are also going to use the legacy bit internally, to choose which GL
API we can use when drawing GL content.
https://bugzilla.gnome.org/show_bug.cgi?id=756142
|
|
|
|
|
|
|
|
|
|
| |
keyboard_handle_leave() might be called with a NULL surface resource
(for example if the surface was destroyed after the event was sent). If
so, we should still deal with the keyboard focus lost event, otherwise
we will both leak (the keyboard_focus GdkWindow reference) and miss
stopping the key repeat timer.
https://bugzilla.gnome.org/show_bug.cgi?id=755927
|
|
|
|
|
|
|
| |
The environment variable DISPLAY makes sense only for X11, so set its
value in the X11 backend.
https://bugzilla.gnome.org/show_bug.cgi?id=754983
|
|
|
|
| |
There's enough users inside GTK to warrant this convenience function.
|