Benjamin Otte
b9504a547a
mountoperation: Move from screen to display
2017-10-31 08:25:37 +01:00
Benjamin Otte
07164e098a
window: Turn gtk_window_set_screen() into gtk_window_set_display()
...
And have a priv->display instead of a priv->screen.
Includes turning gtk_menu_set_screen() into gtk_menu_set_display(),
because that function just forwards to its window.
2017-10-31 08:25:37 +01:00
Benjamin Otte
941a621ea9
styleprovider: Fix fallout from merge
...
StyleProvider should inherit from GObject, not from itself.
2017-10-31 06:17:40 +01:00
Benjamin Otte
e8053622eb
gtk: Fix debug build
...
It seems I didn't have debug builds enabled and forgot some
return_if_fail()s when doing the last patch.
2017-10-31 06:10:26 +01:00
Benjamin Otte
83fb7a649f
css: Merge GtkStyleProviderPrivate into GtkStyleProvider
...
This is just lots of renaming.
The interface remains private, so the public API does not change, apart
from removing the definition of the Interface object to avoid
subclassing.
2017-10-31 04:33:54 +01:00
Benjamin Otte
c8986e66ce
window: Remove gtk_window_get_screen()
...
It's identical to gtk_widget_get_screen(), just use that one.
2017-10-31 04:33:54 +01:00
Benjamin Otte
1c36c6ed4d
widget: Remove gtk_widget_has_screen()
...
All widgets always have a screen (or display).
2017-10-31 04:33:11 +01:00
Matthias Clasen
c20d217d8f
printoperation: Stop using gdk_app_launch_context_set_screen
...
It is not necessary.
2017-10-30 23:01:01 -04:00
Matthias Clasen
f63d01b782
gtk: Stop using gdk_event_get_screen
...
Use gdk_event_get_display instead.
2017-10-30 22:22:00 -04:00
Benjamin Otte
ecd5b399a4
icontheme: Use GdkDisplay instead of GdkScreen
2017-10-31 03:05:55 +01:00
Benjamin Otte
9151e0b9f5
stylecontext: Port to use display instead of screen
2017-10-31 03:05:54 +01:00
Benjamin Otte
cb0c7d6cf3
immulticontext: Remove unused variable
2017-10-31 00:44:35 +01:00
Benjamin Otte
44614394e6
widget: Turn screen-changed signal into display-changed
2017-10-31 00:43:11 +01:00
Benjamin Otte
59cfd56365
settings: Don't store the screen in the settings object
...
Screens are going away.
Code that still needs the screen just gets it from the display.
2017-10-31 00:42:32 +01:00
Matthias Clasen
9e5f4f94b3
immulticontext: Avoid GdkScreen api
...
No need for it here either.
2017-10-30 19:30:29 -04:00
Matthias Clasen
297889e080
immodule: Avoid GdkScreen api
...
Another place where it is not needed.
2017-10-30 19:27:36 -04:00
Matthias Clasen
24903e3fab
modules: Avoid GdkScreen api
...
No need for this here either.
2017-10-30 19:19:38 -04:00
Matthias Clasen
0cd864283f
assistant: Avoid GdkScreen api
...
There is no need at all here to use gtk_settings_get_for_screen.
2017-10-30 19:19:38 -04:00
Matthias Clasen
a1a5f556cb
Some documentation updates
...
Document gtk_settings_get_for_display instead of for_screen.
2017-10-30 18:59:41 -04:00
Matthias Clasen
e821c2fc2f
gtk: Avoid using gdk_screen_get_setting
...
We can get the setting from the display instead.
2017-10-30 16:51:20 -04:00
Matthias Clasen
f9cc7ca140
Add gtk_settings_get_for_display
...
This will help us avoiding screens in many places.
2017-10-30 16:50:14 -04:00
Matthias Clasen
a518072e87
Remove GdkScreen api usage
...
Use GdkDisplay equivalents where they exist.
2017-10-30 16:06:42 -04:00
Matthias Clasen
1f22c6532e
Store the display inside GtkSettings
...
This is a step towards dropping GdkScreen.
2017-10-30 15:56:03 -04:00
Matthias Clasen
2926669a9b
gtk: Stop handling settings events
...
We don't need this anymore, now that we use the ::setting-changed
signal.
2017-10-30 09:48:51 -04:00
Matthias Clasen
a8aff6ef8f
gtk: Connect to GdkDisplay::setting-changed
...
We still handle the setting event, for now.
That will be removed in a future commit.
2017-10-30 09:29:54 -04:00
Benjamin Otte
916981f66e
cssimagescaled: Remove now unused struct member
2017-10-30 02:55:46 +01:00
Benjamin Otte
481189867a
inspector: Use the new monitor change signals
...
And on't use the GdkScreen anymore now that the GdkDisplay provides all
the information we care about.
2017-10-30 02:30:44 +01:00
Timm Bäder
91f40eb088
widget: Make parent property read-only
2017-10-29 18:03:10 +01:00
Timm Bäder
09239eb670
widget: Don't notify :parent when rearranging widgets
...
gtk_widget_reposition_after is also valid to call if the widget already
has a parent, so don't notify the parent property in that case.
2017-10-29 17:27:53 +01:00
Timm Bäder
ff6cd8f75e
widget: Remove parent-set signal
...
When a widget unparents its child widget manually in finalize, this can
lead to the parent-set signal being emitted for those child widgets. The
parent already has a ref_count of 0 though, so it can't be used in a
meaningful way. Specifically, emitting the signal will already try to
ref the parent which prints a critical.
Since GtkWidget already has a "parent" property, one can use its notify
signal instead to get notified when the parent widget changes.
2017-10-29 17:24:12 +01:00
Timm Bäder
0be4166b89
inspector: Remove node != NULL check from recorder model
...
We use NULL to remove the selection.
2017-10-29 13:44:12 +01:00
Timm Bäder
8b0f60bb6f
checkbutton: Destroy indicator widget when draw-indicator is FALSE
2017-10-29 13:27:03 +01:00
Benjamin Otte
457bd2b9ee
cssimagescaled: Just return the computed image
...
... instead of returning either itself with uncomputed images or a
copy of itself with only one computed image and lots of other
uncomputed images that we're never gonna look at again.
This fixes expressions like -gtk-scaled(-gtk-recolor(...),-gtk-recolor(...))
which Adwaita uses for checkmarks and bullets.
2017-10-29 06:41:12 -04:00
Matthias Clasen
598d22d194
Avoid creating trivial shadow nodes
...
The Vulkan renderer creates a fallback surface for each shadow
node, even if we end up not rendering anything to it. Avoiding
this is a nice optimization.
2017-10-28 16:10:46 -04:00
Matthias Clasen
99d3d31314
Adwaita: Use scaled icons for checks and bullets
...
This gives us crip rendering on hidpi screens.
2017-10-28 15:22:54 -04:00
Matthias Clasen
1dbc50f3f8
Adwaita: Add scaled version of bullets and checks
...
We use these assets as .symbolic.png now, so for hidpi, we
should provide @2 variants.
2017-10-28 15:20:11 -04:00
Matthias Clasen
a48015d3c6
inspector: Show details for shadow nodes
...
One of the few node types that we're not detailing yet.
2017-10-28 14:30:03 -04:00
Matthias Clasen
dc0570cc17
gsk: Drop the GskRenderer::scale-factor property
...
This is can always be obtained from the window that is already
associated with the renderer, no need to maintain a separate
property for it.
2017-10-28 11:49:39 -04:00
Timm Bäder
50d9484083
Adwaita: Add back visible focus outlines for list rows
2017-10-28 11:46:35 +02:00
Timm Bäder
4dee08dd52
sizerequest: Don't pass uninitialized values to measure
...
The GtkWidgetClass::measure vfunc is not required to assign a value to
any of the (out) parameters, so we need to initialize the locals we pass
to it, otherwise we can end up with a garbage size request.
2017-10-28 11:42:08 +02:00
Federico Mena Quintero
559d32420c
GtkPathBar: Centralize handling of outstanding cancellables
...
The path bar would crash if we disposed it before all pending I/O
operations had finished. Now we remember all the outstanding
operations directly in the GtkPathBarPrivate, and deal with them
consistently.
2017-10-27 17:18:38 -05:00
Matthias Clasen
ea91ab1d99
gsk: Make text nodes more compact
...
The copy of the PangoGlyphString we do here was showing up
in some profiles. To avoid it, allocate the PangoGlyphInfo array
as part of the node itself. Update all callers to deal with
the slight api change required for this.
2017-10-27 17:13:40 -04:00
Simon McVittie
bdd2ca9a60
GtkHeaderBar: Reconsider buttons if any tiling state changes
...
Looking at the 1-bit "tiled or not?" state is not necessarily
enough.
Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357
2017-10-27 12:14:44 -02:00
Drew DeVault
1b279e3d4a
Wayland: Implement KDE's SSD protocol
...
If the compositor prefers server-side decorations and the client doesn't
customize the title bar, we disable client-side decorations and let the
compositor know. Otherwise, we continue to use client-side decorations.
Signed-off-by: Drew DeVault <sir@cmpwn.com>
https://bugzilla.gnome.org/show_bug.cgi?id=781909
2017-10-26 15:51:56 -04:00
Florian Müllner
07beb6dba2
appchooserwidget: Don't limit application list unconditionally
...
As documented, GtkAppChooser is "typically [used] for the purpose of
opening a file". However given that applications that support neither
opening files nor URLs are filtered out, the chooser is not actual
useful for any other (atypical) usage. Change that by only applying
the filtering if a content-type was set, and use the full unfiltered
list otherwise.
https://bugzilla.gnome.org/show_bug.cgi?id=789327
2017-10-26 06:18:01 -04:00
Christian Persch
29d1cc2fcd
actionable: Allow all detailed action name formats
...
Use g_action_parse_detailed_name() to enable use of this API
for actions with non-string parameter.
https://bugzilla.gnome.org/show_bug.cgi?id=788841
2017-10-26 06:16:59 -04:00
Matthias Clasen
5bdc67f3f6
Drop gtk_cell_renderer_get_size
...
This function has been deprecated since 3.0, time to drop it.
2017-10-25 22:27:19 -04:00
Matthias Clasen
fb8589671d
Drop unused includes of gtkrender.h
...
We don't use the gtk_render apis internally anymore.
Drop these includes so it is clear where the remaining
uses are.
2017-10-25 21:46:46 -04:00
Matthias Clasen
f8e74e8f04
Some minimal theme fixes for focus drawing
...
We don't want focus rectangles everywhere, so set them up
explicitly for the widgets where we want them, and only
if focus(visible) is set.
2017-10-25 18:35:32 -04:00
Matthias Clasen
46d4deeb1e
Remove a shortcut in gtk_widget_set_focus_child
...
Since focus can now be represented by more than one state,
just looking at the focus_child is no longer sufficient - we
may fail to propagate :focus(visible) if we do so. For now,
just remove the shortcut and always do the work.
2017-10-25 18:26:06 -04:00
Matthias Clasen
0d4bd034c6
Always draw outline
...
We can now control with CSS where there the outline
is drawn.
2017-10-25 17:59:00 -04:00
Matthias Clasen
4209c1762d
Support the new state in CSS selectors
...
Make :focus(visible) match the new state.
2017-10-25 17:59:00 -04:00
Matthias Clasen
8b15eabad2
Set the new state flag
...
For now, we only set the new visible focus state
on the focus widget, when we have visible focus.
Later on, we will allow setting it on other widgets.
2017-10-25 17:49:43 -04:00
Matthias Clasen
18b8a7f91f
Add a state flag for visible focus
...
The new flag is called GTK_STATE_FLAGS_FOCUS_VISIBLE.
2017-10-25 17:49:43 -04:00
Timm Bäder
0d82de585c
Adwaita: Remove focus outlines from scrollbars and scales
...
gtk3 didn't have focus outlines for these, so remove them for now.
Sorry lapo.
2017-10-25 09:34:52 +02:00
Chun-wei Fan
20fc576275
gtk/gtkcssenumvalue.c: Deal with __builtin_popcount on MSVC
...
__builtin_popcount is a GCCism that is used to count the number of bits
involved, which means any non GCC/CLang compilers won't like the code,
meaning that on MSVC builds we must implement it ourselves.
We first use __cpuid() to check whether the CPU supports the popcount
instruction, if it does, we use the __popcnt intrinsic, otherwise
(untested, since I don't have a system that does not have the
instruction), we use the suggested hacks at
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-10-25 00:53:37 +08:00
Chun-wei Fan
a601e5d10e
gtk/gtkwin32theme.c: Include gdk/gdkprivate.h
...
We still need to access the GdkEvent structure here directly, as using
the GdkEvent getters is likely not worth the trouble involved.
Please see Emmanuele's comment (#97 ) of the following bug URL.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2017-10-25 00:48:01 +08:00
Benjamin Otte
373b407bd2
Fix build
...
Don't do two things at once and forget to run ninja before pushing.
2017-10-24 18:26:08 +02:00
Benjamin Otte
8549e62d85
Add default return values to switch statements
...
We are using g_assert_not_reached() without doing anything, assuming it
aborts the program. In release builds however, it is ignored.
2017-10-24 18:21:03 +02:00
Matthias Clasen
6c74a8c755
inspector: Show more render node details
...
Should clip and container node details.
2017-10-24 15:24:23 +02:00
Alexander Larsson
96b04836d8
Drop all uses of GdkPixbufAnimation in the gtk APIs
...
These are basically animated gifs, and don't fit well in how
modern things animate.
2017-10-23 16:56:49 +02:00
Alexander Larsson
b1250935a0
GtkIconHelper: Remove unused code
2017-10-23 15:34:17 +02:00
Alexander Larsson
0089e4ad58
Drop pixbuf support in IconHelper and ImageDefinition
...
These are no longer used, instead we always covert to surface as
early as possible and drop the pixbuf.
This means we never store both the pixbuf and the surface at
for any longer time, which is wasteful. Also, its one step further
to drop GdkPixbufs from generic use in our APIs.
2017-10-23 15:28:33 +02:00
Alexander Larsson
61b2ab5d90
GtkDragSource: Don't use gtk_image_definition_new_pixbuf
...
We want to get rid of pixbuf image definitions.
Long term this should probably be gtk_drag_source_set_icon_surface instead.
2017-10-23 15:28:33 +02:00
Alexander Larsson
e205ae9fc1
CellRendererPixbuf: Never store pixbufs
...
Rather than store the pixbufs as themselves we immediately convert
them to surfaces. In the uncommon case that a pixbuf is read back
from the renderer we generate a new one from the surface data.
2017-10-23 15:28:33 +02:00
Alexander Larsson
2b194089dd
GtkImage: Drop support for storing pixbufs
...
This drops the pixbuf property and the pixbuf getters. We keep
gtk_image_new/set_from_pixbuf, but these are small helpers that
immediately convert to a surface, and there is no way to later get
back the pixbuf you passed in.
The from file/resource codepaths are also changed to load a surface
instead of a pixbuf.
2017-10-23 15:28:33 +02:00
Timm Bäder
7ee2ab32b8
window: Use correct destroy notify for icon list
...
The list contains cairo_surface_t instances now, not GdkPixbuf anymore.
2017-10-23 14:43:47 +02:00
Timm Bäder
134ba2ebf7
icontheme: Silence some compiler warnings
2017-10-23 14:23:52 +02:00
Matthias Clasen
493f5d6b18
dnd: Add more surface apis
...
The new function, gtk_drag_source_set_icon_surface, is for setting
a drag source icon without using GdkPixbuf.
2017-10-23 14:16:31 +02:00
Alexander Larsson
d3fc937b4d
GtkWindow/GdkWindow: Finish converting icons to surfaces
...
There were some parts left, for instance gdk_window_set_icon_list.
2017-10-23 13:45:25 +02:00
Alexander Larsson
6f8644ad25
GtkEntry: Use surfaces, not pixbufs for bitmapped icons
2017-10-23 13:45:25 +02:00
Alexander Larsson
7a0ce9804f
aboutdialog: Use set_boxed on surface
...
cairo_surface_t is boxed, not a GObject.
2017-10-23 13:45:25 +02:00
Matthias Clasen
dfaed90f67
inspector: show color matrix node details
...
Show the matrix and the offset for color matrix nodes.
2017-10-23 11:47:23 +02:00
Matthias Clasen
a072f9fc06
Use a color matrix for symbolic icons
...
The recoloring of symbolic icons is just a color matrix
operation.
2017-10-23 11:47:17 +02:00
Matthias Clasen
e4cdbef092
Allow passing a color matrix when rendering icons
...
This will be used for symbolic icons.
Update all callers.
2017-10-23 11:44:52 +02:00
Matthias Clasen
b543257e42
icon helper: Use cached textures
...
Use a cached texture for themed icons if we can.
Currently, we only do this for non-symbolic icons.
2017-10-23 08:07:35 +02:00
Matthias Clasen
02db8ccd89
icon theme: Add a texture cache
...
Return cached textures for icons. This lets us avoid duplicate
texture uploads for icons whose surfaces we already cache.
2017-10-23 08:07:35 +02:00
Matthias Clasen
6c7d9c6445
recent manager: Remove dead code
...
These functions are no longer used.
2017-10-23 08:07:08 +02:00
Timm Bäder
f59e5b2b31
adwaita: Remove focus outlines from textviews
2017-10-23 07:58:07 +02:00
Matthias Clasen
8eea3e2ddd
window: Correct the property definition for icon
...
cairo surfaces are boxed types, not objects.
2017-10-23 07:39:12 +02:00
Matthias Clasen
85503a8f95
about dialog: Correct the property definition for logo
...
cairo surfaces are boxed types, not objects.
2017-10-23 07:38:36 +02:00
Matthias Clasen
8b84df422b
Drop gtk_recent_info_get_icon
...
We are moving away from pixbuf-based apis.
Use gtk_recent_info_get_gicon instead.
2017-10-23 06:21:59 +02:00
Matthias Clasen
b775238bc4
Document new clipboard apis
...
These are surface-based replacements for some pixbuf apis.
2017-10-23 05:58:54 +02:00
Matthias Clasen
65408a0b0c
Document new selection apis
...
Document the new cairo surface-based apis for GtkSelection.
2017-10-23 05:58:54 +02:00
Matthias Clasen
50006c229f
Drop gtk_drag_set_icon_pixbuf
...
We are moving away from GdkPixbuf in the api.
Use surface-based replacements instead.
2017-10-23 05:58:54 +02:00
Matthias Clasen
27e89c69cd
selection: Add another surface api
...
Of course, we need a getter too.
2017-10-23 05:58:54 +02:00
Alexander Larsson
a4f7d0c0e0
GtkAboutDialog: Use surfaces for logo
2017-10-22 23:03:19 +02:00
Alexander Larsson
d22c91127f
gtk_image_get_surface: Add docs
2017-10-22 22:57:55 +02:00
Alexander Larsson
aa873e7709
GtkWindow: Use cairo_surface_t for icons
2017-10-22 22:57:21 +02:00
Matthias Clasen
d8a4503c53
recent chooser: Don't use pixbuf based apis
...
Use gtk_drag_set_icon_surface here.
2017-10-22 22:23:01 +02:00
Matthias Clasen
6c57432e79
recent manager: always return a GIcon
...
Make gtk_recent_info_get_gicon return a useful GIcon in
all cases.
2017-10-22 22:22:55 +02:00
Matthias Clasen
ad00108678
selection: Add surface based apis
...
Add gtk_selection_data_set_surface.
2017-10-22 22:22:44 +02:00
Matthias Clasen
e5ce3144e0
image: Add surface based apis
...
Add gtk_image_get_surface.
2017-10-22 22:22:37 +02:00
Matthias Clasen
8f6fbc9c24
clipboard: Add surface apis
...
Add gtk_clipboard_set_surface and gtk_clipboard_wait_for_surface.
2017-10-22 22:22:31 +02:00
Timm Bäder
afea254526
overlay: Remove unused NULL-check
2017-10-20 15:12:28 +02:00
Timm Bäder
04c550bfb5
window: Make sure we query the window size before size-allocate'ing
2017-10-20 14:56:29 +02:00
Timm Bäder
09750f9937
renderborder: Don't snapshot all-invisible borders
...
If all of the borders have an alpha of 0, we don't need to snapshot
anything.
2017-10-20 14:56:29 +02:00
Timm Bäder
99026d2df8
renderbackground: Minimize style lookups
...
Move the early returns up so we don't look up all those css values for
no reason.
2017-10-20 14:56:29 +02:00
Timm Bäder
f5b0692cfc
widget: Remove outdated comment on get_allocation
...
The allocation passed to gtk_widget_size_allocate can be retrieved these
days, using gtk_widget_get_allocated_size.
2017-10-20 14:55:53 +02:00
Matthias Clasen
55df74a102
window: Remove dead code
...
GtkWindow never has a parent widget, so we never need to create
a child window for it.
2017-10-20 14:43:11 +02:00