Matthias Clasen [Sun, 5 Nov 2017 23:33:56 +0000 (18:33 -0500)]
x11: Add a helper to get all toplevels
This will let us avoid frontend API for this task.
Matthias Clasen [Sun, 5 Nov 2017 23:30:03 +0000 (18:30 -0500)]
quartz: Drop another use of gdk_display_get_toplevel_windows
This one was forgotten in the previous commit.
Matthias Clasen [Sun, 5 Nov 2017 23:28:27 +0000 (18:28 -0500)]
quartz: Drop use of gdk_display_get_toplevel_windows
We can use the newly added helper function for this.
Matthias Clasen [Sun, 5 Nov 2017 23:27:49 +0000 (18:27 -0500)]
quartz: Add a function to get all toplevels
This will let us avoid frontend API for this.
Matthias Clasen [Sun, 5 Nov 2017 23:19:04 +0000 (18:19 -0500)]
broadway: Stop using gdk_display_get_toplevel_windows
We already keep a list of all toplevels in the broadway
display struct. Just use it.
Piotr Drąg [Sun, 5 Nov 2017 20:56:03 +0000 (21:56 +0100)]
Update Polish translation
Piotr Drąg [Sun, 5 Nov 2017 20:16:59 +0000 (21:16 +0100)]
placessidebar: correct quotation marks in a new string
Alexandru Pandelea [Thu, 20 Jul 2017 15:29:42 +0000 (16:29 +0100)]
placessidebar: add starred location item
Add an item for showing all files marked as favorite. This item will
open all files that have the nao:predefined-tag-favorite tag
https://bugzilla.gnome.org/show_bug.cgi?id=785176
Matthias Clasen [Sun, 5 Nov 2017 17:09:06 +0000 (12:09 -0500)]
quartz: Drop mentions of foreign windows
The quartz backend never creates foreign windows,
so no need to check for window type.
Matthias Clasen [Sun, 5 Nov 2017 16:24:12 +0000 (11:24 -0500)]
Expand the cursors demo text
Explain what why we show each cursor 4 times.
Matthias Clasen [Sun, 5 Nov 2017 16:20:42 +0000 (11:20 -0500)]
wayland: Fix animated cursors
We must reset the image delay when stopping the timeout,
otherwise the code setting it up thinks it is still running.
This fixes cursor animation only working for the very first
enter of a widget with an animated cursor, as seen in the
cursors example in gtk4-demo.
Benjamin Otte [Sun, 5 Nov 2017 15:12:35 +0000 (16:12 +0100)]
emojichooser: animate the adjustment
... instead of doing a dance with the scrolled window to get it to scroll
the adjustment.
Benjamin Otte [Sun, 5 Nov 2017 14:22:14 +0000 (15:22 +0100)]
gtk-demo: Fix popover positioning in popover test
Benjamin Otte [Sun, 5 Nov 2017 14:01:30 +0000 (15:01 +0100)]
gtk-demo: Don't use get_allocation()
Use get_width()/get_height() instead.
Benjamin Otte [Sun, 5 Nov 2017 13:46:01 +0000 (14:46 +0100)]
flowbox: Don't call get_allocation()
That's wome outdated workaround code from the last version of GTK3.
Benjamin Otte [Sun, 5 Nov 2017 06:17:36 +0000 (07:17 +0100)]
viewport: Implement clipping for picking
This is necessary because picking is no longer automatically constrained
to a widget's box. So all clipping widgets need to constrain their
clipping, too.
This patch does that for GtkViewport only.
Benjamin Otte [Sun, 5 Nov 2017 05:58:05 +0000 (06:58 +0100)]
testsuite: Update expected results for scale changes
Benjamin Otte [Sun, 5 Nov 2017 05:55:01 +0000 (06:55 +0100)]
testsuite: Unrealize renderers before unreffing
This is now necessary, because the GL renderer crashes if we don't
enforce it.
Benjamin Otte [Sun, 5 Nov 2017 05:50:28 +0000 (06:50 +0100)]
aboutdialog: Clean up for logo being a texture
Benjamin Otte [Sun, 5 Nov 2017 05:45:01 +0000 (06:45 +0100)]
entry: Remove surface icons
We have texture icons.
Benjamin Otte [Sun, 5 Nov 2017 05:30:45 +0000 (06:30 +0100)]
iconhelper: Don't render to surface anymore
Just go directly to texture.
Benjamin Otte [Sun, 5 Nov 2017 04:09:59 +0000 (05:09 +0100)]
menubutton: Don't fiddle with prelight state
Benjamin Otte [Sun, 5 Nov 2017 04:08:18 +0000 (05:08 +0100)]
themes: Do expander arrow :hover properly
We want to prelight the arrow even when the label is hovered.
Benjamin Otte [Sun, 5 Nov 2017 03:56:08 +0000 (04:56 +0100)]
expander: Don't do :hover yourself
GTK does it for you.
Benjamin Otte [Sun, 5 Nov 2017 03:45:18 +0000 (04:45 +0100)]
range: Stop trying to be smarter than GTK
GTK deals with PRELIGHT properly itself now, so there's no need to try
do it manually.
Benjamin Otte [Sun, 5 Nov 2017 03:22:02 +0000 (04:22 +0100)]
range: Use gtk_widget_pick() to pick the mouse location
That's rather unsuccessful so far because it requires skipping a bunch
of irrelevant widgets, but oh well...
Benjamin Otte [Sun, 5 Nov 2017 03:05:55 +0000 (04:05 +0100)]
widget: Make gtk_widget_pick() really slow
We cannot fast-track picking by using gtk_widget_contains(). Child
widgets may extend their parent using ie negative margins.
This is not just a theoretical concern, this is what's happening right
now with GtkScale's sliders relative to the trough.
The problem is that we now iterate through all widgets, even when they
aren't anywhere near the mouse pointer. So essentially every pick
operation is now guaranteed O(N_WIDGETS) which used to be the worst case
that pretty much never happened.
Benjamin Otte [Sun, 5 Nov 2017 03:00:33 +0000 (04:00 +0100)]
range: Stack widgets properly
The trough widgets have the slider on top of the fill level and the
hilight widget. Make sure the widget stacking respects that.
This is particularly relevant because picking event targets should pick
the slider and not the hilight widget.
Benjamin Otte [Sat, 4 Nov 2017 23:53:31 +0000 (00:53 +0100)]
entry: Texture properties are objects
Carelessly copy/pasting made them boxeds. Oops.
Benjamin Otte [Sat, 4 Nov 2017 23:49:18 +0000 (00:49 +0100)]
widget: Implement gtk_widget_pick()
... and use it.
Matthias Clasen [Sun, 5 Nov 2017 03:48:30 +0000 (23:48 -0400)]
Fix some typos
Correct function names in the docs, etc.
Matthias Clasen [Sun, 5 Nov 2017 03:47:02 +0000 (23:47 -0400)]
Documentation fixes
Make sure textures show up in the gdk docs.
Piotr Drąg [Sat, 4 Nov 2017 23:26:47 +0000 (00:26 +0100)]
Update POTFILES.skip
Benjamin Otte [Sat, 4 Nov 2017 23:05:56 +0000 (00:05 +0100)]
wayland: Fix embarassing bug
Yes, I did not get to test this code path until now. Because nobody uses
icon surfaces, boo!
Benjamin Otte [Sat, 4 Nov 2017 23:04:23 +0000 (00:04 +0100)]
gtk-demo: Update cursors demo
It's all glade-ified, hurray!
It also now properly tests image cursors, named cursors and fallbacks.
I'm not gonna tell how many bugs I found though.
Benjamin Otte [Sat, 4 Nov 2017 22:58:17 +0000 (23:58 +0100)]
gdk: Use G_N_ELEMENTS() when iterating over constant arrays
And do that everywhere.
Because if we don't, we're gonna crash sometimes.
Benjamin Otte [Sat, 4 Nov 2017 22:12:46 +0000 (23:12 +0100)]
gdk: Fix fallback names for the help cursor
Benjamin Otte [Sat, 4 Nov 2017 19:40:17 +0000 (20:40 +0100)]
docs: You can't modify textures
So there's no need to tell people they must not do that.
Benjamin Otte [Sat, 4 Nov 2017 19:23:33 +0000 (20:23 +0100)]
window: Make icons GdkTextures
Cairo surfaces are bad, mkay?
Benjamin Otte [Sat, 4 Nov 2017 18:10:46 +0000 (19:10 +0100)]
aboutdialog: Make logo a texture property
Get rid of cairo surfaces!
Benjamin Otte [Sat, 4 Nov 2017 18:09:17 +0000 (19:09 +0100)]
builder: Mirror GdkPixbuf abilities for GdkTexture
In particular, allow specifying a filename for a GDK_TYPE_TEXTURE
property. This makes it easy to transition properties from Pixbuf type
to Texture type without having to touch resource files.
Benjamin Otte [Sat, 4 Nov 2017 18:05:52 +0000 (19:05 +0100)]
image: Add the ability to set textures
This also adds it to all other places that use the same infrastructure:
GtkEntry and GtkCellRendererPixbuf
Emmanuele Bassi [Sat, 4 Nov 2017 15:03:03 +0000 (15:03 +0000)]
Partially revert GskTexture → GdkTexture rename
Excessive use of sed when moving GskTexture to GDK; the GskTextureNode
should still live under the GSK namespace.
Benjamin Otte [Sat, 4 Nov 2017 14:20:04 +0000 (15:20 +0100)]
inspector: Unrealize renderer before unreffing
See previous patch for a description on why that is necessary.
`
Benjamin Otte [Sat, 4 Nov 2017 14:09:43 +0000 (15:09 +0100)]
renderer: Assert having been unrealized in dispose
We cannot unrealize a renderer in the dispose function, because that
would cause this chain to happen:
gsk_gl_renderer_dispose
gsk_renderer_dispose
gsk_renderer_unrealize
gsk_gl_renderer_unrealize
So we would call into thje GL renderers unrealize when it has already
(partially) disposed itself and ause accesses to dead variables.
Benjamin Otte [Sat, 4 Nov 2017 14:08:25 +0000 (15:08 +0100)]
texture: Add gdk_texture_new_from_file()
and gdk_texture_new_from_resource().
While doing set, turn all GDK_AVAILABLE_IN_3_90 into
GDK_AVAILABLE_IN_3_94 because that's now true after the renaming.
Benjamin Otte [Sat, 4 Nov 2017 06:04:08 +0000 (07:04 +0100)]
iconhelper: Compute surface size without icon helper
This is so we can do the next batch of changes
Benjamin Otte [Sat, 4 Nov 2017 02:58:02 +0000 (03:58 +0100)]
textview: Use gtk_widget_set_cursor()
This currently breaks because we still use GdkWindows. Soon...
Benjamin Otte [Sat, 4 Nov 2017 02:16:26 +0000 (03:16 +0100)]
textview: Remove GdkWindow usage from the public API
A sideeffect is that we don't set the correct parent window on child
widgets anymore, but that is hopefully going to be fixed once we get rid
of child windows completely.
Rico Tzschichholz [Sat, 4 Nov 2017 12:23:02 +0000 (13:23 +0100)]
x11: Make gdk_x11_display_get_xcursor be recognized as instance method
Chun-wei Fan [Mon, 30 Oct 2017 07:00:28 +0000 (15:00 +0800)]
gdk/win32: Fix Win32 GL Context switching
Since on Windows we need to use a good amount of temporary GL contexts,
we need to switch back to the original GL contexts we were using when
we are done with the temporary GL contexts, otherwise multi-GL windows
will cause confusions causing display artifacts and crashes.
Also, use the GdkWin32GLContext::gl_hdc consistently throughout
the code and remove the GdkWin32Display::gl_hdc as Lukas K pointed out
that GdkWin32Display::gl_hdc becomes out-of-date and so the HDC that the
GL context is bound to becomes incorrect in sceanarios using multiple
windows with GtkGLArea/GdkGLArea items (which would cause the artifacts in
programs that use multiple windows with GtkGLArea/GdkGLArea items, and it
turns out that GdkWin32Display::gl_hdc is actually not necessary to help
keep track of the HDCs we use for our GL contexts.
This will also fix on Windows with GDK_GL=always, or when GSK's gl
renderer is used.
Partly based on patch from Lukas K <lu@0x83.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=789213
Chun-wei Fan [Fri, 3 Nov 2017 08:37:18 +0000 (16:37 +0800)]
gdk/win32: Fix build after GdkScreen and cursor cleanups
Move the leftovers from the removals to use the current APIs, to fix the
build. Also for gdk_device_virtual_set_window_cursor(), only do
something when a valid GdkCursor is passed in here.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
Benjamin Otte [Sat, 4 Nov 2017 00:37:03 +0000 (01:37 +0100)]
gtk: Use gtk_widget_set_cursor()
... and gtk_widget_set_cursor_from_name() instead of setting cursors on
GdkWindows.
Benjamin Otte [Sat, 4 Nov 2017 00:35:59 +0000 (01:35 +0100)]
x11: Don't use g_hash_table_steal()
It returns TRUE/FALSE, not the item you've stolen, so if you free that,
your X connections is gonna have a BadCursor.
Benjamin Otte [Fri, 3 Nov 2017 23:58:57 +0000 (00:58 +0100)]
widget: Export gtk_widget_set_cursor()
Widgets can now set their favorite cursor using public API.
This is very necessary because all cursor-setting APIs are still
setting it on their GdkWindow, which by now is the toplevel - oops.
Benjamin Otte [Fri, 3 Nov 2017 22:19:22 +0000 (23:19 +0100)]
gdk: Cursors no longer have a display
Change constructors to reflect that.
While doing so, also add a fallback argument to the cursor constructors,
so it is now possible to create cursors with fallback.
Benjamin Otte [Fri, 3 Nov 2017 22:18:56 +0000 (23:18 +0100)]
testsuite: Remove cursor tests
Cursors always exist now, it does not make sense to test that their
creation fails anymore.
Benjamin Otte [Fri, 3 Nov 2017 21:49:04 +0000 (22:49 +0100)]
gdk: Cursors are created generically
There are no longer subclasses for cursors now.
Benjamin Otte [Fri, 3 Nov 2017 21:41:31 +0000 (22:41 +0100)]
wayland: Redo cursor handling
This is in line with the X11 changes last patch.
Benjamin Otte [Fri, 3 Nov 2017 05:01:56 +0000 (06:01 +0100)]
x11: Redo cursor handling completely
Instead of creating a GdkX11Cursor, create GdkCursors. Cache the XCursor
in a hash table instead.
Also, make use of the new fallback mechanism for fallback code: Make
sure to provide cursors for the names that are guaranteed to exist, but
do not do bad attempts at displaying texture surfaces.
Black/White/transparent is not a replacement for those.
Benjamin Otte [Fri, 3 Nov 2017 05:00:56 +0000 (06:00 +0100)]
gdk: Make cursors instantiable
This way, backends can instantiate GdkCursor objects directly.
Do that for broadway to test that it indeed works.
Benjamin Otte [Fri, 3 Nov 2017 02:08:04 +0000 (03:08 +0100)]
gdk: Add gdk_cursor_hash() and gdk_cursor_equal()
This is so GDK backends can put cursors into hash tables and avoid
duplicates.
Benjamin Otte [Fri, 3 Nov 2017 02:07:33 +0000 (03:07 +0100)]
gdk: Add gdk_cursor_get_fallback()
There's no way to use it yet, but I want it to be available for
refactoring the backends.
Benjamin Otte [Fri, 3 Nov 2017 00:59:15 +0000 (01:59 +0100)]
cursor: Turn new_from_surface() into new_from_texture()
Also turn all the arguments into read-only properties on the GdkCursor
object.
Benjamin Otte [Fri, 3 Nov 2017 00:55:01 +0000 (01:55 +0100)]
broadway: Don't crash on startup
Benjamin Otte [Thu, 2 Nov 2017 22:00:38 +0000 (23:00 +0100)]
gdk: Remove ability to download a cursor
Benjamin Otte [Thu, 2 Nov 2017 20:39:00 +0000 (21:39 +0100)]
GskTexture => GdkTexture
We want this thing to replace GdkPixbuf, so it has to live in GDK.
Benjamin Otte [Thu, 2 Nov 2017 19:38:07 +0000 (20:38 +0100)]
gdk: Add gdk_cursor_get_name()
Also add the GdkCursor::name property.
Benjamin Otte [Thu, 2 Nov 2017 17:52:35 +0000 (18:52 +0100)]
gdk: Get rid of GdkCursorType
Now that we no longer have API that uses cursor types, don't keep them
around.
Carlos Garnacho [Fri, 3 Nov 2017 21:13:39 +0000 (22:13 +0100)]
gtkwindow: Use event target widget for WM handling special paths
The check used to achieve discarding events not meant for the window
widget itself (because they are handled in the regular paths). Using
the target widget is the equivalent now.
Kjell Ahlstedt [Fri, 3 Nov 2017 19:05:28 +0000 (20:05 +0100)]
GtkWindow: Tidy up after icon became a cairo surface
Use g_value_set/get_boxed() in gtk_window_get/set_property(), case PROP_ICON.
icon_from_list() shall always add a reference to the returned icon.
gtk_window_set_icon() must accept icon != NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=789870
Timm Bäder [Fri, 3 Nov 2017 10:22:00 +0000 (11:22 +0100)]
notebook: Fix setting show-tabs
show-tabs=FALS means the notebook is not supposed to show tabs,
regardless of whether it has a current page or not.
Timm Bäder [Fri, 3 Nov 2017 10:21:36 +0000 (11:21 +0100)]
notebook: Remove useless call to gtk_widget_reset_style
Khaled Hosny [Fri, 3 Nov 2017 09:58:56 +0000 (11:58 +0200)]
Update Arabic translation
Timm Bäder [Fri, 3 Nov 2017 09:44:16 +0000 (10:44 +0100)]
glarea: Use content size of the widget
For buffer sizes, etc. We only draw in the content area after all.
Timm Bäder [Fri, 3 Nov 2017 09:41:37 +0000 (10:41 +0100)]
rendernodeview: Use content size instead of allocated size
Timm Bäder [Fri, 3 Nov 2017 09:40:43 +0000 (10:40 +0100)]
colorplane: Use content size everywhere
Timm Bäder [Fri, 3 Nov 2017 09:37:16 +0000 (10:37 +0100)]
revealer: Create clip node for right widget size
It should use gtk_widget_get_width/height here to get the correct
content size of the revealer.
Benjamin Otte [Thu, 2 Nov 2017 11:47:50 +0000 (12:47 +0100)]
x11: Remove gdk_x11_grab_server()
Luckily, this one is unused.
Benjamin Otte [Thu, 2 Nov 2017 01:02:37 +0000 (02:02 +0100)]
gdk: Remove GdkWindow.set_device_cursor() vfunc
That one calls through to GdkDevice.set_window_cursor(), so let's just
use that one.
Benjamin Otte [Wed, 1 Nov 2017 21:57:42 +0000 (22:57 +0100)]
x11: Remove outdated functions from API
We don't want generic APIs that do random stuff on the default X display.
Benjamin Otte [Wed, 1 Nov 2017 21:56:46 +0000 (22:56 +0100)]
x11: Add API to query root window and screen from GdkDisplay
Timm Bäder [Thu, 2 Nov 2017 10:21:29 +0000 (11:21 +0100)]
widget: Add get_width() and get_height()
Timm Bäder [Wed, 1 Nov 2017 11:47:11 +0000 (12:47 +0100)]
testwidgetfocus: Make focused button more obvious
Timm Bäder [Wed, 1 Nov 2017 10:23:36 +0000 (11:23 +0100)]
widget: Remove stray prototype
gtk_cairo_transform_to_window is gone.
Emmanuele Bassi [Thu, 2 Nov 2017 06:42:49 +0000 (06:42 +0000)]
x11: Use backend-specific API to get GdkScreen
The gdk_display_get_default_screen() function was removed, but the X11
GdkEventSource still lobs around GdkX11Screen instances.
Matthias Clasen [Wed, 23 Aug 2017 11:49:04 +0000 (07:49 -0400)]
Drop foreign window checks in Broadway
The broadway backen never creates foreign windows,
so no need to check for this type of window.
Matthias Clasen [Tue, 22 Aug 2017 19:23:46 +0000 (15:23 -0400)]
Drop foreign window checks in Wayland
The wayland backend never creates foreign windows,
so no need to check for this type of window.
Matthias Clasen [Tue, 22 Aug 2017 19:08:14 +0000 (15:08 -0400)]
Stop using foreign windows for xsettings
Stop wrapping the xsettings manager window in a foreign
window. This means that we cannot use the gdk window filter
APIs anymore, so just do the filtering in a non-generic
way.
Matthias Clasen [Thu, 2 Nov 2017 02:53:24 +0000 (22:53 -0400)]
Stop providing the owner in GdkEventOwnerChange
This information is rarely useful, and it is one
of the last places where we create foreign windows.
Matthias Clasen [Thu, 2 Nov 2017 02:49:52 +0000 (22:49 -0400)]
Remove an unused function
Matthias Clasen [Thu, 2 Nov 2017 02:35:19 +0000 (22:35 -0400)]
wayland: Some cursor cleanups
Remove methods that are not used.
Matthias Clasen [Thu, 2 Nov 2017 01:50:33 +0000 (21:50 -0400)]
Some forgotten cleanups
Matthias Clasen [Thu, 2 Nov 2017 01:47:35 +0000 (21:47 -0400)]
t Remove gdk_cursor_new_for_display
The preferred api to create cursors is by name, and the
GdkCursorType enumeration can directly trace its ancestry
to the horrible X cursor font. So lets stop using it.
Matthias Clasen [Thu, 2 Nov 2017 01:22:21 +0000 (21:22 -0400)]
tests: Stop using gdk_cursor_new_for_display
The name-based api is the one we prefer.
Matthias Clasen [Thu, 2 Nov 2017 01:19:31 +0000 (21:19 -0400)]
label: Stop using gdk_cursor_new_for_display
We prefer to use the name-based api for cursors nowadays.
Matthias Clasen [Thu, 2 Nov 2017 00:59:54 +0000 (20:59 -0400)]
Drop GdkScreen from the docs
It is no longer part of the api.
Matthias Clasen [Thu, 2 Nov 2017 00:55:09 +0000 (20:55 -0400)]
Drop gdk_screen_get_display
This is not longer used.
Matthias Clasen [Thu, 2 Nov 2017 00:54:50 +0000 (20:54 -0400)]
win32: Stop using gdk_screen_get_display
We can just use the field directly.
Matthias Clasen [Thu, 2 Nov 2017 00:54:22 +0000 (20:54 -0400)]
quartz: Stop using gdk_screen_get_display
We can just use the field directly.