Alexander Larsson
8c7623de84
Cache default gdk visuals in the GDK_VISUALS property on the root window
...
This means we don't have to try to initialize opengl in every gtk
instance that is stated. It will only happen for the first one.
https://bugzilla.gnome.org/show_bug.cgi?id=738670
2014-10-29 13:35:17 +01:00
Alexander Larsson
dae447728d
X11: Pick better system and rgba visuals for GL
...
We want to create windows with the default visuals such that we then
have the right visual for GLX when we want to create the paint GL
context for the window.
For instance, (in bug 738670) the default rgba visual we picked for the
NVidia driver had an alpha size of 0 which gave us a BadMatch when later
trying to initialize a gl context on it with a alpha FBConfig.
Instead of just picking what the Xserver likes for the default, and just
picking the first rgba visual we now actually call into GLX to pick
an appropriate visual.
2014-10-29 13:35:17 +01:00
Matthias Clasen
8765970ba1
Remove a redundant call
...
No need to set shapes twice in a row.
2014-10-29 06:49:59 -04:00
Matthias Clasen
0b4c37624a
GtkPopoverMenu: Add API to open a submenu
...
This allows alternative menu switching to be implemented, besides
the builtin GtkModelButton support.
2014-10-29 06:49:59 -04:00
Matthias Clasen
f83c903ed8
Add a scale to the popover menu example
...
Demonsttrate that this is flexible enough for the intended uses.
2014-10-29 06:49:59 -04:00
Matthias Clasen
6e001acbf9
Add documentation
...
Document GtkModelButton and GtkPopoverMenu.
2014-10-29 06:49:59 -04:00
Matthias Clasen
228e51b319
Adapt the testpopover example
...
Add the required boxes for each submenu. We now need to specify the
submenu name only once per submenu.
2014-10-29 06:49:59 -04:00
Matthias Clasen
55b7838b4f
GtkPopoverMenu: Simplify
...
Change things so each submenu is a single child, and users are
required to create the box themselves.
2014-10-29 06:49:59 -04:00
Matthias Clasen
2b5a49c285
Adapt the testpopover example
...
Drop all all explicit role setting from the testpopover example.
2014-10-29 06:49:59 -04:00
Matthias Clasen
689363a782
GtkModelButton: Don't require an explicit role
...
When we have an action-name, we can deduce the role from the
action that is looked up by the action helper.
2014-10-29 06:49:59 -04:00
Matthias Clasen
2401a6cb8e
Adapt the testpopover example
2014-10-29 06:49:59 -04:00
Matthias Clasen
14e394d3d7
GtkModelButton: Rename action-role to role
...
Rename action-role to role, and make all properties readable.
2014-10-29 06:49:59 -04:00
Matthias Clasen
e776c665b0
GtkModelButton: Drop unused :accel property
2014-10-29 06:49:59 -04:00
Matthias Clasen
1fee63d097
Adapt the testpopover example
...
Drop all uses of has-submenu.
2014-10-29 06:49:59 -04:00
Matthias Clasen
ef22be9bb7
Drop GtkModelButton:has-submenu
...
Replace the has-submenu property with checking menu-name != NULL.
2014-10-29 06:49:59 -04:00
Matthias Clasen
4da281d20b
Adapt the testpopover example
...
We now use GtkPopoverMenu, and just add the model buttons
directly to it.
2014-10-29 06:49:58 -04:00
Matthias Clasen
e095918128
GtkModelButton: Add a menu-name property
...
Add a menu-name property and use it in a default implementation
of ::clicked to switch menus if we are inside a stack. This means
GtkModelButton is no longer entirely generic, but rather expects
to be used inside a GtkPopoverMenu. It still works in other contexts
too, of course.
2014-10-29 06:49:58 -04:00
Matthias Clasen
1f81c83fd8
Add GtkPopoverMenu
...
GtkPopoverMenu is a GtkPopover subclass that has a menu-like stack
built-in.
2014-10-29 06:49:58 -04:00
Matthias Clasen
a8cc4787d2
Add a manual popover menu example
...
Reproduce the testpopover popover manually, by packing model
buttons into a stack in a popover.
2014-10-29 06:49:58 -04:00
Matthias Clasen
83976c47f8
Make GtkModelButton a better GtkActionable
...
Rename the "toggled" property to "active", since that is what
GtkActionHelper expects to update for check and radio actions.
Also make the property readable, since GtkActionHelper wants
to read it.
2014-10-29 06:49:58 -04:00
Matthias Clasen
fd945be50b
Make GtkModelButton public
2014-10-29 06:49:58 -04:00
Matthias Clasen
c9ad936011
Drop an unused variable
2014-10-29 06:49:58 -04:00
Alexander Larsson
d5cd05a0f4
GdkGLContextX11: Don't free NULL visual info
2014-10-29 11:26:00 +01:00
Matthias Clasen
778865f316
Fix toplevel input shape for csd windows
...
We need to maintain the application-set and the the csd
input shape separately, and intersect them to pass them
down.
2014-10-28 20:23:47 -04:00
Matthias Clasen
3f1dc87188
Plug another memory leak
...
Also found by valgrind.
2014-10-28 16:07:57 -04:00
Matthias Clasen
c8d4eefa71
Plug some memory leaks in GL support
...
valgrind pointed these out.
2014-10-28 16:07:57 -04:00
Alexander Larsson
0814cd9f8b
GdkGlContextWayland: Don't require specific bit depths
...
This just means we may fail to get a gl context, we just require
*some* color depth.
2014-10-28 18:30:09 +01:00
Alexander Larsson
3406bbd128
Pick the first rgba visual, not the last
...
The visuals are typically sorted by some sort of "most useful first"
order. And picking the last one is likely to give us the weirdest
matching glx visual.
2014-10-28 18:30:09 +01:00
Alexander Larsson
8d6d6dcca3
GdkGLContextX11: Ensure we get the fbconfig with the exact same visual
...
We really want a gl context with exactly the same visual, or we will
get a badmatch later, which hits us on nvidia as per:
https://bugzilla.gnome.org/show_bug.cgi?id=738670
2014-10-28 18:30:09 +01:00
Matthias Clasen
b673490a1b
Document Wayland opacity handling
2014-10-28 10:48:49 -04:00
Matthias Clasen
4cf6edda55
wayland: Make window opacity work
...
Under wayland, the compositor doesn't have a 'overall window alpha'
knob, we just need to add the alpha to the buffers we send.
Client-side alpha, if you want to call it that.
Implement this by reusing the existing alpha support for non-toplevel
widgets. As a side-effect of the implementation, windows with RGBA
visual under X will now also use per-pixel alpha, instead of
overall alpha.
2014-10-28 10:28:23 -04:00
Matthias Clasen
d58c750db5
Bump atk dep
...
Needed for ATK_STATE_HAS_TOOLTIP.
2014-10-28 08:08:49 -04:00
Matthias Clasen
850143b7a0
Inspector: Make picking work without a grab
...
Turns out Weston takes an X grab while delivering button events.
Thus, trying to take a grab in response to a button press is
futile.
2014-10-28 07:05:45 -04:00
Jasper St. Pierre
c40ba85ace
wayland: Don't use the default display
...
Pass a display in so that multi-display technology works.
2014-10-27 22:29:41 -07:00
Jasper St. Pierre
bbe9ef20da
gdkevents: Use the correct display to copy event data
2014-10-27 22:29:41 -07:00
Jasper St. Pierre
887b7356c3
gdkdisplay: Provide a default event_data_copy / event_data_free
...
Every single implementation but Quartz is a no-op for this, so just
provide it once rather than in every backend.
2014-10-27 22:13:23 -07:00
Matthias Clasen
e36b57e7f9
gtk-demo: Drop uses of gdk_cursor_new()
...
Use gdk_cursor_new_for_display() instead.
2014-10-28 00:56:46 -04:00
Matthias Clasen
abe7187cfb
Add another multi-device invariant
...
The device and window passed to gdk_device_grab() must be
on the same display, or things are unlikely to work.
Document and assert this.
2014-10-28 00:54:39 -04:00
Matthias Clasen
86f66d26fe
Drop an unused variable
2014-10-28 00:53:59 -04:00
Matthias Clasen
4c69dabb6e
Don't return GDK_GRAB_SUCCESS on failure
...
That seems ... counterproductive.
2014-10-28 00:51:32 -04:00
Matthias Clasen
d1dcac85f3
Mention the 'same display' requirement in the docs too
2014-10-28 00:44:33 -04:00
Matthias Clasen
eedff39413
Deprecate gdk_cursor_new()
...
Too easy to introduce an unintended assumption about the display
being the default this way.
2014-10-28 00:38:59 -04:00
Matthias Clasen
8aecf2c06a
GtkAboutDialog: Don't use gdk_cursor_new
...
gdk_cursor_new returns cursors for the default display, and
thus is not safe to use in code that may run on non-default
displays.
2014-10-28 00:36:17 -04:00
Jasper St. Pierre
5f980cd8de
gtkwindow: Use gdk_cursor_new_for_display
...
Otherwise, this crashes the inspector, since it now uses multi-display
technology, and on Wayland, resources like the cursor are client-private.
2014-10-27 21:22:44 -07:00
Jasper St. Pierre
52e3b88382
gdkwindow: Specify some invariants for cursors
...
Cursors should not be on a different display than their window /
device, as that would break Wayland.
2014-10-27 21:22:31 -07:00
Matthias Clasen
168a49426e
Update for 3.15.1
2014-10-27 20:03:51 -04:00
Matthias Clasen
60a11333af
Update expected results of a11y tests
...
The new has-tooltip state is showing up in a number of places,
as expected.
2014-10-27 20:03:51 -04:00
Jasper St. Pierre
0f79cb3d11
x11: Scale the frame extents as well
2014-10-27 16:54:33 -07:00
Matthias Clasen
a680631345
gtk3-demo: Add a frame to the sidebar
...
With overlay scrollbars, there's no visible separation between
the sidebar and the content otherwise.
2014-10-27 17:15:31 -04:00
Alexander Larsson
f7b1ba0943
opengl: Use GL_TEXTURE_2D rather than GL_TEXTURE_RECTANGLE_ARB when possible
...
This is more standard, and most driver support non-power-of-2 TEXTURE_2D
these days. We fall back for ancient drivers.
2014-10-27 21:17:08 +01:00