Commit Graph

28855 Commits

Author SHA1 Message Date
Mohammed Sadiq
18adee6e1b emoji-chooser: fix subsequent scroll
Event handlers on scroll window should only be run once the widget
is shown.

https://bugzilla.gnome.org/show_bug.cgi?id=786964
2017-09-01 19:36:59 -04:00
Daniel Boles
7a3548e10c Entry: Set tooltip text on icon for emoji chooser
https://bugzilla.gnome.org/show_bug.cgi?id=786885
2017-09-01 17:28:31 -04:00
Matthias Clasen
7da4d8af2f Use gsk for text shadows
We don't need to render these manually using cairo anymore.
2017-09-01 15:34:13 -04:00
Matthias Clasen
6bdebd1570 label: Don't leak clip regions
This was introduced in the conversion to gsk.
2017-09-01 15:34:13 -04:00
Daniel Boles
e6bbc10bd5 ComboBox: Dodge possible surplus disconnects
in case anyone connected any other signal on the model to this ComboBox.
2017-09-01 20:20:17 +01:00
Matthias Clasen
8de8525b44 entry: Convert to gsk
This introduces a new css node for block cursor styling.
2017-09-01 14:42:29 -04:00
Matthias Clasen
1440bb25de Fix text colors
This was lost in some reshuffling of the gskpango branch.
2017-09-01 14:12:20 -04:00
Matthias Clasen
f199f7b87b Fix the build 2017-09-01 13:42:43 -04:00
Matthias Clasen
a367d34949 Use a text render node in GskPangoRenderer
This pushes the rendering closer to the place where we can
insert a texture atlas for glyph caching.
2017-09-01 13:30:03 -04:00
Matthias Clasen
4975aa7920 Add a render node for text
This is just a wrapper around a PangoGlyphString + PangoFont.
Basically, the arguments that are passed to pango_renderer_draw_glyphs.
2017-09-01 13:30:03 -04:00
Matthias Clasen
82538f935b Use GskPangoRenderer to render text
This just replaces the wrapper call.
2017-09-01 13:30:03 -04:00
Matthias Clasen
82e8f3a542 Add a Pango renderer
Copy the PangoCairoRenderer into GTK+, rename it to GskPangoRenderer,
and strip it down far enough to build without private pango apis.
This means we currently don't support hexboxes or shapes.

Currently, this lives in gtk, but it might be nicer to put it
in gsk eventually.
2017-09-01 13:30:03 -04:00
Timm Bäder
3fc1cafec0 centerbox: Unparent widgets in dispose 2017-09-01 19:05:30 +02:00
Timm Bäder
2cd9f43d2f menuitem: Fix small memory leak in get_label
g_object_get returs a newly allocated string so we can't use it here.
2017-09-01 19:05:30 +02:00
Matthias Clasen
745a9426b0 Remove an unused variable 2017-09-01 12:56:22 -04:00
Matthias Clasen
10ddd3112a label: Port active link drawing to gsk
We don't need to fall back to cairo fro this anymore.
2017-09-01 12:29:11 -04:00
Matthias Clasen
75115b122b inspector: Add some tooltips
These buttons are not 100% obvious.
2017-09-01 12:04:40 -04:00
Matthias Clasen
c17f76cd54 inspector: Remove debug nodes setting from visual tab
No need to have the same setting in two places.
2017-09-01 12:04:33 -04:00
Matthias Clasen
04f1e19e00 inspector: Move debug nodes option
Put this option on the recorder page where it makes more sense.
2017-09-01 12:04:27 -04:00
Matthias Clasen
47f717d4ae label: Port selection drawing to gsk
We don't need to fall back to cairo for this anymore.
2017-09-01 12:04:20 -04:00
Daniel Boles
021e0d5e3d ScrolledWindow: Dodge possible surplus disconnects
In case the outgoing Adjustment for whatever reason has other handlers
referring to this SW, be sure to avoid disconnecting any but our own.
2017-09-01 16:28:57 +01:00
Daniel Boles
9a6adcbce4 ComboBox: Remove pointless signal ID member fields
We don’t need to store these for disconnection, as we can just use
g_signal_handlers_disconnect_by_data().
2017-09-01 16:28:56 +01:00
Daniel Boles
ceb09e4c8d ScrolledWindow: Fix non-disconnection of handlers
• Use disconnect_by_data() to catch both _adjustment_changed() and now
  _adjustment_value_changed(), as the latter had been missed until now.

• Also disconnect from indicator_value_changed(), which was not done in
  destroy() due to indicator_reset() and remove_indicator() disagreeing.

https://bugzilla.gnome.org/show_bug.cgi?id=775074
2017-08-31 23:18:46 +01:00
Daniel Boles
6984d0847b Window: Do not connect to NULL screen in init()
Do not connect to get_settings_for_screen() if we have no screen…

Use g_signal_connect(), not connect_object(), to match how set_screen()
makes this same connection, and how finalize() already disconnects it.

https://bugzilla.gnome.org/show_bug.cgi?id=705640
2017-08-31 20:26:44 +01:00
Daniel Boles
6609173779 FileChooserWidget: Remove an unused #include 2017-08-31 19:59:25 +01:00
Matthias Clasen
767bf1b3fd Avoid computing the same thing twice
Trivial cleanup.
2017-08-30 23:30:10 -04:00
Daniel Boles
552998868d Entry: Rename int helper to gtk_entry_clear_icon()
It was called gtk_entry_clear(), which was unnecessarily vague.
2017-08-30 21:16:00 +01:00
Daniel Boles
6e414d42d7 Entry: Fix Shift-click → extend/truncate selection
Since the move from button-press to gesture events, Shift-clicking did
not work to start a selection (from none) or truncate an existing one.

This was due to the code being copy-pasted around and some logic being
broken in the process. This makes both of those work as they should, by
shuffling it again so the end result is the same as before. Highlights:

(1) ::button-press if extending due to a single press would call
set_positions(tmp_pos, tmp_pos), which is what made the Shift+click to
create a selection work. That was lost. Add it back to make that work.

(2) ::button-press in the “Truncate current selection” branch would not
execute all the stuff around “extend_to_left”, as that was the else
case. So, set extend_selection = FALSE so we skip over that later on.

(3) BUT! This Truncate case never fired because it was in the else
branch of if (in_selection())! Of course, it must be in the true branch.

(4) The IM context was not reset if the Shift-click occurred within an
existing selection, only if it did not. In ::button-press this was the
first thing done if extending a selection, regardless. Make it so again.

https://bugzilla.gnome.org/show_bug.cgi?id=780750
2017-08-30 18:26:04 +01:00
Matthias Clasen
d2087f1943 Avoid empty space in the emoji chooser
We need to hide the empty flow boxes as well, to avoid
spacing between them.

https://bugzilla.gnome.org/show_bug.cgi?id=786966
2017-08-30 08:36:56 -04:00
Nelson Benítez León
c3c10edd09 textview: fix bug on DnD displaced limits of selection
The fix of commit f2fd655754
should be confined to DnD coords only, because otherwise
it causes the start and end of the selection to be displaced.

https://bugzilla.gnome.org/show_bug.cgi?id=785736
2017-08-29 19:26:07 +01:00
Debarshi Ray
fd9aec27fc GtkBuilder: Prefer "type-func" over "class" when looking for the GType
https://bugzilla.gnome.org/show_bug.cgi?id=786932
2017-08-29 15:41:01 +02:00
Daniel Boles
87c67e6ed3 LevelBar: Really fix underallocation of blocks
Themes should not enforce min sizes on blocks in continuous mode; in
this case, the filled block should be as large as it needs to be to
reflect the current value, and no larger or smaller than that. So, the
fact that the minimal size was selected on just levelbar block is wrong:
we should also require the levelbar.discrete class to apply min sizes.

The widget should enforce whatever correct minimum size results from the
above fix, by reapplying commit 78b4885fe8

Except: we should not allocate/draw the filled block if the value is 0,
as in this case, the LevelBar should be empty, not have a min-size fill.

This partially reverts commit 96062ffeae,
as it makes sense to set min sizes for discrete blocks, so keep that in.

https://bugzilla.gnome.org/show_bug.cgi?id=783649
2017-08-29 00:34:02 +01:00
Javier Jardón
bc3968d2ff gtk/gtkshow: Remove deprected gtk_show_uri() 2017-08-28 23:47:36 +01:00
Javier Jardón
d3954f614c Use gtk_show_uri_on_window() instead gtk_show_uri() 2017-08-28 23:47:36 +01:00
Daniel Boles
896f7c8ac0 Entry: Handle :show-emoji-icon becoming false
Disconnect the now-unwanted signal handler, and hide the icon.

https://bugzilla.gnome.org/show_bug.cgi?id=786940
2017-08-28 20:52:06 +01:00
Daniel Boles
cb219473ee Entry: Drop redundant typecasts
https://bugzilla.gnome.org/show_bug.cgi?id=786940
2017-08-28 20:52:06 +01:00
Daniel Boles
477fc95655 Entry: Only open emoji picker on 2ndary icon click
We hijack the secondary icon for the emoji picker, but the handler for
::icon-press did not check the pressed icon and opened it for either.

https://bugzilla.gnome.org/show_bug.cgi?id=786938
2017-08-28 20:52:01 +01:00
Timm Bäder
a08f8937c6 Revert "headerbar: Avoid allocating 0 visible children"
This reverts commit 8c0e5adaab.

This is actually needed since GtkHeaderBar will allocate and snapshot
widget that coun_visible_children does not consider.
2017-08-28 17:50:34 +02:00
Timm Bäder
ccfc568a03 range: Fix trough state update 2017-08-28 11:17:47 +02:00
Timm Bäder
619ee3797d popover: Initialize some locals
gtk_popover_get_pointing_to does not fill the given rect in every case.
2017-08-28 11:17:47 +02:00
Timm Bäder
8c0e5adaab headerbar: Avoid allocating 0 visible children
Ths avoids doing a bunch of work as well as passing 0 to g_alloca which
is undefined.
2017-08-28 11:17:47 +02:00
Matthias Clasen
41f26ea7a6 wayland: Stop using subsurfaces for popovers
Subsurfaces don't currently work with our new rendering,
and this makes popovers unusable. We can go back to using
subsurfaces for popovers when this is fixed.
2017-08-26 15:34:46 -04:00
Timm Bäder
e26b60d48c container: Remove leftover prototype
Thanks to Murray Cumming.
2017-08-25 14:53:09 +02:00
Daniel Boles
73c689eb5a ComboBox: Clarify documentation of get_active_iter
https://bugzilla.gnome.org/show_bug.cgi?id=618160
2017-08-24 21:32:05 +01:00
Daniel Boles
12693c6fe3 Popover: Include window shadows in overshoot calcs
.update_position() enforces that non-Wayland platforms must position a
Popover within its parent Window. We use the allocation of the Window
to translate the position and check for overshoot on each of its sides.
Calling Widget.get_allocation() of a CSD Window includes its shadows.

But shadows were not excluded from the area in which we can position.
Thus, Popovers could get positioned in the shadow of CSD windows, where,
at least on X11, no input is received. Therefore, positioning a Popover
over a shadow meant its child widgets within that area became unusable.

Fix by calling Window.get_shadow() and including it in the overshoot on
each side. This adjusts for how the allocation includes shadows, making
overshoots with and without shadows the same. Thus, we avoid considering
shadows as viable for positioning, favouring a side where input works.

https://bugzilla.gnome.org/show_bug.cgi?id=786209
2017-08-24 21:32:05 +01:00
Matthias Clasen
17b75f2252 Remove motif dnd leftovers
We don't support Motif DND anymore, so no need to look for
Motif-specific messages.
2017-08-23 19:42:53 -04:00
Daniel Boles
da76699757 SidebarRow: Add Unmount tooltip to eject_button
It was reported that the lack of a tooltip made its purpose unclear.
This can be solved by just copying PlacesViewRow’s eject_button tooltip.

https://bugzilla.gnome.org/show_bug.cgi?id=766909
2017-08-23 21:41:50 +01:00
Carlos Garnacho
5fdcfa4739 fontchooser: Block row deleted signal handler when reloading model
This prevents the load_fonts() function from switching to the "no fonts"
page and back when the model is reloaded. Given
GtkSettings::gtk-fontconfig-timestamp is 0 on Wayland and style changes
happen often, the stack change messes up popovers and pointer focus
on the fonts treeview and test entry.
2017-08-23 20:41:18 +02:00
Tom Schoonjans
84bcf7d4d3 GtkFileChooserNativeQuartz: restore parent focus after closing dialog
Tested for both modal and non-modal dialogs

https://bugzilla.gnome.org/show_bug.cgi?id=785306
2017-08-23 10:45:50 -04:00
Tom Schoonjans
bc2f125f1c GtkFileChooserNativeQuartz: improve support for file filters
Instead of using conditional compilation, use respondsToSelector to
check at runtime for setAccessoryViewDisclosed.

https://bugzilla.gnome.org/show_bug.cgi?id=785306
2017-08-23 10:45:49 -04:00