Matthias Clasen
fc0f7dc217
Remove gdkprivate.h
...
This is one-too-many private headers. Move the few
declarations here to gdkinternals.h.
2017-11-17 00:34:04 -05:00
Matthias Clasen
38c8310969
Drop gdkmain.h
2017-11-17 00:16:09 -05:00
Matthias Clasen
3f0d42f74b
Stop including gdkmain.h
...
It is empty now.
2017-11-17 00:16:09 -05:00
Matthias Clasen
26d5b04124
Drop an empty file
...
Nothing deprecated left!
2017-11-17 00:08:24 -05:00
Matthias Clasen
6e94be3f50
Drop the error trap vfuncs
...
No longer used.
2017-11-17 00:08:24 -05:00
Matthias Clasen
30e6a4c29d
Drop the generic error trap api
...
This is only implemented on X11, so we don't
need generic api for it.
2017-11-17 00:08:24 -05:00
Matthias Clasen
90d502fdbd
x11: Fix error traps in the dnd code
...
The code for grabbing keys was using a generic
error trap call, and more concerning, it was forgetting
to pop the trap.
2017-11-16 23:56:11 -05:00
Matthias Clasen
5517ab0651
Drop an unused variable
...
These are no longer used.
2017-11-16 23:27:14 -05:00
Matthias Clasen
92f49ed3e3
Drop a duplicate definition
...
GDK_PRIORITY_EVENTS is already defined in gdkevents.h
2017-11-16 23:23:42 -05:00
Matthias Clasen
6bf215bc15
Drop gdk_set_program_class
...
Together with the corresponding getter.
This is x11-specific functionality.
2017-11-16 23:22:08 -05:00
Matthias Clasen
d73898437f
x11: Add gdk_x11_display_set_program_class
...
The program class is a very X-specific concept.
There should be x11-backend api to deal with it.
2017-11-16 23:21:06 -05:00
Matthias Clasen
49f3d86c84
wayland: Stop using gdk_get_program_class
...
This is an abuse, at best. If we need to pass the
app id down here, lets pass the app id.
2017-11-16 23:18:03 -05:00
Matthias Clasen
95876cbc9c
Remove gdk/gdkx.h
...
It was just a kludge.
2017-11-16 23:00:01 -05:00
Matthias Clasen
39386275a4
Move some code around
...
Move gdk_disable_multidevice to gdkdisplaymanager.[hc].
2017-11-16 22:54:26 -05:00
Matthias Clasen
211f16d68b
Drop gdk_notify_startup_complete
...
This function and its variant are just wrappers
around the display-specific function.
2017-11-16 22:45:52 -05:00
Matthias Clasen
419a9af28c
gdk: Move some headers around
...
Move gdk_flush and gdk_set_allowed_backends to where they
belong.
2017-11-16 22:18:45 -05:00
Matthias Clasen
baf40d35c5
Drop gdk_beep
...
This is an unnecessary wrapper around gdk_display_beep.
2017-11-16 22:10:26 -05:00
Matthias Clasen
ce13dbba10
Drop gdk_set_double_click_time
...
This is an unnecessary and not-recommended-to-be-used
wrapper around gdk_display_set_double_click_time.
2017-11-16 22:04:25 -05:00
Benjamin Otte
e9629a5149
wayland: Fix initial cursor
...
Make sure the initial cursor isn't random which would happen due to an
early exit when cursor == pointer->cursor triggered because both were
NULL.
2017-11-15 19:07:17 +01:00
Benjamin Otte
4c4e914806
gdk: Replace GDK_NONE with NULL
2017-11-15 19:07:17 +01:00
Benjamin Otte
cb941956d3
gdk: Turn GdkAtom into a const char *
...
Instead of an integer, it is now a char pointer. We also use
g_intern_string() instead of doing the interning ourselves.
2017-11-15 19:07:17 +01:00
Benjamin Otte
0451c6d30c
gdk: Make GDK_NONE Atom translate to NULL
...
Instead of the string "NONE" we now use NULL.
2017-11-15 19:07:17 +01:00
Benjamin Otte
a385a50260
gdk: Get rid of magic special atoms
2017-11-15 19:07:17 +01:00
Benjamin Otte
41f9a174e2
x11: Remove special casing for GdkAtoms
...
This is in preparation for the GdkAtom removal
2017-11-15 19:07:17 +01:00
Benjamin Otte
fb94f79094
selection: Remove #ifdef WAYLAND
...
Instead, turn the functions into backend API:
gdk_broadway_display_add_selection_targets()
gdk_broadway_display_clear_selection_targets()
Remove the old per-backend functions, too.
2017-11-15 19:07:16 +01:00
Matthias Clasen
0436cc44fc
win32: Remove all checks for GDK_WINDOW_ROOT
...
We are no longer creating windows of this type, so no
need to check for it.
2017-11-14 18:16:19 -05:00
Matthias Clasen
e2682e62a8
win32: Remove all uses of get_root_window
...
This is following similar changes done in the x11 and
broadway backends, but it has not been built.
Some fixups may be needed.
2017-11-14 18:16:19 -05:00
Benjamin Otte
ed1b6a9bed
gdkwindow: Remove event_mask arguments from constructors
2017-11-13 23:41:38 +01:00
Benjamin Otte
ef5a6835b2
window: Set ALL_EVENT_MASK
...
This is a trivial commit that does a big change: We now ignore event masks.
Further commits will clean up code, but if bisection ends up here, you
know it's because code is getting delivered events that it weren't getting
before.
2017-11-13 23:41:37 +01:00
Benjamin Otte
de40ced21c
gdk: Fix GDK_ALL_EVENTS_MASK
...
This mask was forgotten to update when the last 2 event masks were
added, probably because it looks like it's already maxed.
2017-11-13 23:41:37 +01:00
Matthias Clasen
5f73afae3d
x11: Remove mentions of GDK_WINDOW_ROOT
...
This backend never creates a window of this type, so no
need to check for it anymore.
2017-11-13 16:47:50 -05:00
Matthias Clasen
964cdaf3a3
x11: Stop creating a root window
...
We no longer need it.
2017-11-13 16:39:54 -05:00
Matthias Clasen
5999b1c73a
x11: Store toplevel list in GdkDisplay
...
This will let us get rid of the root window.
2017-11-13 16:32:34 -05:00
Matthias Clasen
8af666cb4f
x11: Remove another use of the root window
...
We just need the X root window here.
2017-11-13 16:09:47 -05:00
Matthias Clasen
7839e0d7d5
x11: Fix a crash
...
This was crashing the moment a second window is opened.
2017-11-11 12:07:11 -05:00
Matthias Clasen
bdb442be21
x11: Reduce uses of the root window
...
Avoid calling the get_root_window api that returns
a GdkWindow in some places, and instead use the X
root window directly.
2017-11-09 22:52:37 -05:00
Chun-wei Fan
c06b1cc103
Win32: Re-work cursor handling
...
Like the X11 and Wayland backends, re-work how the cursors are being
handled. So, we use a hash table to cache up the HCURSORS that we
create along the way.
We still need to cache up the icon/cursor themes since this is something
that is not part of Windows but was added on to support icon/cursor themes
such as Adwaita on Windows, but should be in-line with what is going on in
GdkCursor.
Also, remove the _gdk_grab_cursor global variable in gdkprivate-win32.h,
and replace it with another variable in the GdkWin32Display structure,
to make things cleaner in the process.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-11-09 08:30:09 +08:00
Matthias Clasen
73a3d4b785
wayland: Drop an unused function
...
We no longer create a root window, so need to have
a function for it.
2017-11-07 07:43:09 -05:00
Benjamin Otte
2177b191ba
x11: Correctly set icons
...
X11 obviously doesn't use 4 bytes for a 4 bytes pixel. Rather, it uses
unsigned long, which happens to be 8 bytes these days.
2017-11-07 12:24:43 +01:00
Matthias Clasen
efd86912f0
broadway: Drop the root window
...
We already have a list of toplevels, so we don't
need the root window for this.
2017-11-06 21:51:30 -05:00
Matthias Clasen
6261f5f7b8
wayland: Drop the root window
...
We can just keep a list of toplevels in the display.
2017-11-06 18:52:37 -05:00
Matthias Clasen
20fab69c38
Drop gdk_display_get_root_window
...
This is no longer used.
2017-11-05 21:45:51 -05:00
Matthias Clasen
063db3630b
x11: Stop using gdk_display_get_root_window
...
Use the backend api for this.
2017-11-05 21:45:51 -05:00
Matthias Clasen
5db2352eba
x11: Make gdk_x11_display_get_root_window available
...
This will replace the frontend api of the same name.
2017-11-05 21:45:51 -05:00
Matthias Clasen
c1c919cf7d
win32: Stop using gdk_display_get_root_window
...
Use the newly introduced backend api for this purpose.
2017-11-05 21:45:51 -05:00
Matthias Clasen
be75984485
win32: Make gdk_win32_display_get_root_window available
...
This will be used to replace the equivalent frontend api,
which is going away.
2017-11-05 21:45:51 -05:00
Matthias Clasen
2eb78a2374
wayland: Stop using gdk_display_get_root_window
...
We can just use the display field directly.
2017-11-05 19:44:39 -05:00
Matthias Clasen
f3150c3a43
Typo fix
2017-11-05 19:43:39 -05:00
Matthias Clasen
a163d5b7a7
broadway: Stop using gdk_display_get_root_window
...
We can just use the field in the display.
2017-11-05 19:37:54 -05:00
Matthias Clasen
c08a6a062f
Stop using the root window in gdk_window_create_similar_image_surface
...
Just create a plain image surface if we don't get a window.
This should work just fine and lets us drop another implicit
use of the root window.
2017-11-05 19:30:54 -05:00
Matthias Clasen
de83fc48bf
Stop defaulting to the root window in gdk_window_get_geometry
...
This function is not documented as accepting NULL for the
window, and we don't want to have the root window sneakily
appear in the api like this.
2017-11-05 19:29:49 -05:00
Matthias Clasen
50cf11d398
Make toplevels have parent == NULL
...
This is a move towards removing root windows as a frontend
gdk concept.
2017-11-05 19:28:37 -05:00
Matthias Clasen
119c433882
x11: Handle parent being NULL when creating windows
...
We want to make toplevels have a NULL parent, this
gets us ready for it.
2017-11-05 19:25:22 -05:00
Matthias Clasen
c16a0bd9b7
Drop gdk_display_get_toplevel_windows
...
Nothing uses this private api anymore, so we can drop it.
2017-11-05 18:39:01 -05:00
Matthias Clasen
28a8d03c0b
x11: Drop use of gdk_display_get_toplevel_windows
...
Use the newly introduced helper for this task.
2017-11-05 18:36:49 -05:00
Matthias Clasen
76b6d86659
x11: Add a helper to get all toplevels
...
This will let us avoid frontend API for this task.
2017-11-05 18:33:56 -05:00
Matthias Clasen
e980f68f5b
quartz: Drop another use of gdk_display_get_toplevel_windows
...
This one was forgotten in the previous commit.
2017-11-05 18:30:03 -05:00
Matthias Clasen
4f701c71f1
quartz: Drop use of gdk_display_get_toplevel_windows
...
We can use the newly added helper function for this.
2017-11-05 18:28:27 -05:00
Matthias Clasen
c44e693b26
quartz: Add a function to get all toplevels
...
This will let us avoid frontend API for this.
2017-11-05 18:27:49 -05:00
Matthias Clasen
84a3772ef6
broadway: Stop using gdk_display_get_toplevel_windows
...
We already keep a list of all toplevels in the broadway
display struct. Just use it.
2017-11-05 18:19:04 -05:00
Matthias Clasen
807cac2c79
quartz: Drop mentions of foreign windows
...
The quartz backend never creates foreign windows,
so no need to check for window type.
2017-11-05 12:09:06 -05:00
Matthias Clasen
909330f347
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.
2017-11-05 11:27:06 -05:00
Matthias Clasen
65a7557fc1
Fix some typos
...
Correct function names in the docs, etc.
2017-11-04 23:51:25 -04:00
Benjamin Otte
e484af8e96
wayland: Fix embarassing bug
...
Yes, I did not get to test this code path until now. Because nobody uses
icon surfaces, boo!
2017-11-05 00:07:18 +01:00
Benjamin Otte
7e137b2524
gdk: Use G_N_ELEMENTS() when iterating over constant arrays
...
And do that everywhere.
Because if we don't, we're gonna crash sometimes.
2017-11-05 00:07:18 +01:00
Benjamin Otte
d092e8dd78
gdk: Fix fallback names for the help cursor
2017-11-05 00:07:18 +01:00
Benjamin Otte
70846c85b3
window: Make icons GdkTextures
...
Cairo surfaces are bad, mkay?
2017-11-05 00:07:17 +01:00
Benjamin Otte
4c2bae3a1a
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.
2017-11-04 15:22:25 +01:00
Rico Tzschichholz
7b0ed47525
x11: Make gdk_x11_display_get_xcursor be recognized as instance method
2017-11-04 13:23:02 +01:00
Chun-wei Fan
3228149892
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
2017-11-04 10:39:03 +08:00
Chun-wei Fan
6a12a3cd10
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
2017-11-04 10:32:21 +08:00
Benjamin Otte
d78bbb7e96
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.
2017-11-04 01:35:59 +01:00
Benjamin Otte
9323d098a6
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.
2017-11-04 00:07:13 +01:00
Benjamin Otte
4e7a056777
gdk: Cursors are created generically
...
There are no longer subclasses for cursors now.
2017-11-04 00:07:13 +01:00
Benjamin Otte
ec824b9e50
wayland: Redo cursor handling
...
This is in line with the X11 changes last patch.
2017-11-04 00:07:13 +01:00
Benjamin Otte
e294f71555
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.
2017-11-04 00:07:13 +01:00
Benjamin Otte
d30d55be9e
gdk: Make cursors instantiable
...
This way, backends can instantiate GdkCursor objects directly.
Do that for broadway to test that it indeed works.
2017-11-04 00:07:13 +01:00
Benjamin Otte
428547e14f
gdk: Add gdk_cursor_hash() and gdk_cursor_equal()
...
This is so GDK backends can put cursors into hash tables and avoid
duplicates.
2017-11-04 00:07:13 +01:00
Benjamin Otte
6b2ea46a5f
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.
2017-11-04 00:07:13 +01:00
Benjamin Otte
5adf21a17d
cursor: Turn new_from_surface() into new_from_texture()
...
Also turn all the arguments into read-only properties on the GdkCursor
object.
2017-11-04 00:07:13 +01:00
Benjamin Otte
0cad0caf7d
broadway: Don't crash on startup
2017-11-04 00:07:13 +01:00
Benjamin Otte
81c2bebaca
gdk: Remove ability to download a cursor
2017-11-04 00:07:13 +01:00
Benjamin Otte
ca3c23662c
GskTexture => GdkTexture
...
We want this thing to replace GdkPixbuf, so it has to live in GDK.
2017-11-04 00:07:13 +01:00
Benjamin Otte
8ba9ae6012
gdk: Add gdk_cursor_get_name()
...
Also add the GdkCursor::name property.
2017-11-04 00:07:13 +01:00
Benjamin Otte
a1759a0a52
gdk: Get rid of GdkCursorType
...
Now that we no longer have API that uses cursor types, don't keep them
around.
2017-11-04 00:07:13 +01:00
Benjamin Otte
8aa68110bd
x11: Remove gdk_x11_grab_server()
...
Luckily, this one is unused.
2017-11-02 12:47:50 +01:00
Benjamin Otte
9c98adcd15
gdk: Remove GdkWindow.set_device_cursor() vfunc
...
That one calls through to GdkDevice.set_window_cursor(), so let's just
use that one.
2017-11-02 12:42:58 +01:00
Benjamin Otte
d380cf114b
x11: Remove outdated functions from API
...
We don't want generic APIs that do random stuff on the default X display.
2017-11-02 12:42:58 +01:00
Benjamin Otte
f33c20920b
x11: Add API to query root window and screen from GdkDisplay
2017-11-02 12:42:16 +01:00
Emmanuele Bassi
d2e9a5fa88
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.
2017-11-02 06:42:49 +00:00
Matthias Clasen
4a2dc53a76
Drop foreign window checks in Broadway
...
The broadway backen never creates foreign windows,
so no need to check for this type of window.
2017-11-01 22:55:34 -04:00
Matthias Clasen
6ba48bd0d8
Drop foreign window checks in Wayland
...
The wayland backend never creates foreign windows,
so no need to check for this type of window.
2017-11-01 22:55:27 -04:00
Matthias Clasen
9f6b556dc2
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.
2017-11-01 22:55:17 -04:00
Matthias Clasen
5bd8884bf8
Stop providing the owner in GdkEventOwnerChange
...
This information is rarely useful, and it is one
of the last places where we create foreign windows.
2017-11-01 22:53:24 -04:00
Matthias Clasen
33195d473c
Remove an unused function
2017-11-01 22:49:52 -04:00
Matthias Clasen
3a5b478e0f
wayland: Some cursor cleanups
...
Remove methods that are not used.
2017-11-01 22:35:19 -04:00
Matthias Clasen
c958818631
Some forgotten cleanups
2017-11-01 21:53:50 -04:00
Matthias Clasen
2a60928157
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.
2017-11-01 21:49:05 -04:00
Matthias Clasen
3b7763eebc
Drop gdk_screen_get_display
...
This is not longer used.
2017-11-01 20:57:46 -04:00
Matthias Clasen
dcf2553f23
win32: Stop using gdk_screen_get_display
...
We can just use the field directly.
2017-11-01 20:54:50 -04:00