Matthias Clasen
12c5ca5c01
treeview: Update drop target highlighting
...
Stop using the .dnd style class, and instead use the
:drop(active) pseudo state, together with .before and .after
classes.
https://bugzilla.gnome.org/show_bug.cgi?id=763808
2016-03-21 11:56:17 -04:00
Matthias Clasen
0ac71e81cf
Drop some unused debug printfs
...
Remove some debug spew that has been ifdef'ed out for years
and does not look useful enough to keep.
2016-02-28 21:40:23 -05:00
Benjamin Otte
760b540c8c
treeview: Don't make things way too high
...
If the size-request is larger than the dedicated size, don't increase
the dedicated size by the size request, only increase it to the
size request.
2016-02-25 04:03:41 +01:00
Benjamin Otte
9016a00edd
treeview: Fix positioning of editing widgets
...
This looks like a thinko.
2016-02-25 04:03:41 +01:00
Colomban Wendling
a47d9a7b65
treeview: Make sure the editing widget's top left is always visible
...
https://bugzilla.gnome.org/show_bug.cgi?id=761838
2016-02-11 22:41:58 -05:00
Matthias Clasen
7d16b8df29
treeview: Draw background when empty
...
We have a function we call for drawing the empty case, but
it only renders a focus rectangle. Make it draw the background
as well.
https://bugzilla.gnome.org/show_bug.cgi?id=761309
2016-01-30 18:31:30 -05:00
Carlos Garnacho
f32a54fb70
GtkTreeView: Update prelight row after revalidating rows
...
It might have changed (eg. after a row being expanded, and the child
rows revalidated), so just update it here based on the last pointer
position.
Based on a patch by Maxim Reznik <reznikmm@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=760891
2016-01-22 21:18:24 +01:00
Carlos Garnacho
a5f9dc1284
GtkTreeView: Avoid device query on collapsing rows
...
The pointer position is queried to properly trigger the prelight
updates on the new row below it. We store the last coordinates
though, and track crossing events to unset these, so it's safe
to just update_prelight() here on these.
2016-01-22 21:18:24 +01:00
Matthias Clasen
a0d91a3a71
treeview: Use foreground color to draw dnd marker
...
This is still not perfect, but makes the dnd marker better visible
in HighContrastInverse.
2016-01-15 19:39:12 -05:00
Alberto Ruiz
496f0892fc
introspection: This patch fixes nullable return values fixes for the following symbols in gtk
...
gtk_accel_group_query
gtk_accel_group_from_accel_closure
gtk_accel_label_get_accel_widget
gtk_accessible_get_widget
gtk_actionable_get_action_name
gtk_app_chooser_get_app_info
gtk_app_chooser_button_get_heading
gtk_app_chooser_dialog_get_heading
gtk_application_get_window_by_id
gtk_assistant_get_nth_page
gtk_binding_set_find
gtk_builder_get_object
gtk_builder_lookup_callback_symbol
gtk_builder_get_application
gtk_button_get_image
gtk_cell_area_get_focus_from_sibling
gtk_cell_renderer_start_editing
gtk_cell_view_get_model
gtk_cell_view_get_displayed_row
gtk_clipboard_get_owner
gtk_container_get_focus_child
gtk_container_get_focus_vadjustment
gtk_container_get_focus_hadjustment
gtk_dialog_get_widget_for_response
gtk_drag_get_source_widget
gtk_drag_dest_get_target_list
gtk_drag_source_get_target_list
gtk_entry_completion_get_model
gtk_entry_completion_compute_prefix
gtk_expander_get_label_widget
gtk_file_chooser_get_filename
gtk_file_chooser_get_current_folder
gtk_file_chooser_get_uri
gtk_file_chooser_get_current_folder_uri
gtk_file_chooser_get_preview_widget
gtk_file_chooser_get_preview_file
gtk_file_chooser_get_preview_filename
gtk_file_chooser_get_preview_uri
gtk_file_chooser_get_extra_widget
gtk_file_chooser_get_filter
gtk_file_chooser_native_get_accept_label
gtk_file_chooser_native_get_cancel_label
gtk_file_filter_get_name
gtk_font_chooser_get_font_family
gtk_font_chooser_get_font_face
gtk_font_chooser_get_font
gtk_font_chooser_get_font_desc
gtk_font_chooser_get_font_map
gtk_frame_get_label
gtk_gesture_get_device
gtk_gesture_get_window
gtk_gl_area_get_error
gtk_header_bar_get_title
gtk_header_bar_get_subtitle
gtk_header_bar_get_custom_title
gtk_icon_info_get_filename
gtk_icon_view_get_path_at_pos
gtk_icon_view_get_model
gtk_image_get_pixbuf
gtk_image_get_animation
gtk_label_get_mnemonic_widget
gtk_label_get_attributes
gtk_check_version
gtk_menu_button_get_popup
gtk_menu_button_get_menu_model
gtk_menu_button_get_align_widget
gtk_menu_button_get_popover
gtk_menu_item_get_submenu
gtk_menu_item_get_accel_path
gtk_native_dialog_get_title
gtk_native_dialog_get_transient_for
gtk_notebook_get_nth_page
gtk_notebook_get_tab_label_text
gtk_notebook_get_menu_label
gtk_notebook_get_menu_label_text
gtk_notebook_get_group_name
gtk_notebook_get_action_widget
gtk_offscreen_window_get_surface
gtk_offscreen_window_get_pixbuf
gtk_paned_get_child1
gtk_paned_get_child2
gtk_places_sidebar_get_location
gtk_places_sidebar_get_nth_bookmark
gtk_plug_get_socket_window
gtk_popover_get_default_widget
gtk_progress_bar_get_text
gtk_recent_filter_get_name
gtk_recent_manager_lookup_item
gtk_settings_get_default
gtk_socket_get_plug_window
gtk_stack_sidebar_get_stack
gtk_stack_switcher_get_stack
gtk_style_context_get_section
gtk_style_context_get_parent
gtk_style_context_get_frame_clock
gtk_test_find_widget
gtk_text_buffer_get_mark
gtk_text_tag_table_lookup
gtk_text_view_get_tabs
gtk_text_view_toggle_cursor_visible
gtk_text_view_get_window
gtk_toolbar_get_nth_item
gtk_tool_button_get_label
gtk_tool_button_get_icon_name
gtk_tool_button_get_label_widget
gtk_tool_button_get_icon_widget
gtk_tool_palette_get_drop_item
gtk_tool_palette_get_drop_group
gtk_tree_model_filter_convert_child_path_to_path
gtk_tree_model_filter_convert_path_to_child_path
gtk_tree_model_sort_convert_child_path_to_path
gtk_tree_model_sort_convert_path_to_child_path
gtk_tree_view_get_column
gtk_tree_view_get_bin_window
gtk_tree_view_column_get_widget
gtk_tree_view_column_get_tree_view
gtk_widget_get_frame_clock
gtk_window_group_get_current_device_grab
GtkTextBufferSerializeFunc
2016-01-08 12:18:23 +00:00
Cosimo Cecchi
64a06adfc0
treeview: don't use wide-separators/separator-height
...
Those style properties are on their way out; instead, use min-height
with the separator style class to obtain the height.
2016-01-03 00:42:51 -08:00
Cosimo Cecchi
2eb7e6a85a
treeview: prefer positive polarity in if block
2016-01-03 00:42:51 -08:00
Carlos Garnacho
32c9db8600
GtkTreeView: Add ignore deprecation statements
...
We still need access to floating devices at places.
2015-12-16 19:47:07 +01:00
Matthias Clasen
2f544655f9
Revise CSS node documentation
...
Clarify the use of brackets in the CSS node diagrams:
[] means optional nodes or classes, <> means child widgets.
2015-12-16 10:58:47 -05:00
Carlos Garnacho
7333d7e8bb
GtkTreeView: Avoid gdk_device_manager_get_client_pointer()
...
It's now deprecated
2015-12-15 23:17:22 +01:00
Benjamin Otte
a920f7260c
treeview: Reposition dnd button css node properly
...
After the drag ends, the button node went to the wrong place and then
looked like a regular button. Fix that.
2015-12-15 08:41:16 -05:00
Carlos Garnacho
f663d17c14
GtkTreeView: Use gdk_seat_grab()
...
https://bugzilla.gnome.org/show_bug.cgi?id=759309
2015-12-15 00:32:56 +01:00
Benjamin Otte
5cbbc62026
widget: Pass a GtkCssStyleChange instead of a bitmask
2015-12-13 04:11:58 +01:00
Matthias Clasen
debb33db8c
Cosmetic: Avoid explicit state variables
...
Using the state of the context makes this more obviously correct.
2015-11-14 12:32:57 -05:00
Matthias Clasen
ff4b112265
treeview: Add a diagram to CSS documentation
2015-11-10 07:36:41 -05:00
Matthias Clasen
4c56a1ea5d
treeview: Use a CSS node for rubberband drawing
...
Use a CSS node with name rubberband to draw the rubberband
selection.
2015-11-10 07:29:54 -05:00
Matthias Clasen
5b360a479d
tree view: Rename and document element names
...
The names are now treeview and header.
2015-10-30 17:25:43 -04:00
Jonas Ådahl
aedd193c69
GtkTreeView: Rework the search window hack so it also works on Wayland
...
The search window of a tree view was implemented by showing without
making it visible by by positioning it outside the screen edge. This is
not possible on Wayland, so implement another method for being able to
enter text into a non-visible entry.
The new method is implemented by, before showing the window, pass the
key event directly to the IM context backing the entry. If the key
event triggered the context to commit new text or change the preedit
content, the search window is shown, and from that point the key events
are forwarded directly to the entry widget.
https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-10-27 08:41:02 +08:00
Jonas Ådahl
97dbef451e
GtkTreeView: Make a search window destroy helper
...
https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-10-27 08:41:02 +08:00
Jonas Ådahl
2eb7d7476b
GtkTreeView: Use more consistent search window naming
...
Instead of alternating between search dialog and search window, use
search window everywhere.
https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-10-27 08:41:02 +08:00
Benjamin Otte
983de6f4a0
treeview: Use a cssnode instead of regions
...
This makes Treeview headers work again like before region support was
removed.
2015-10-22 16:42:47 +02:00
Benjamin Otte
b65f400d56
treeview: Remove "row" and "col" regions
...
They aren't used by the theme and we want to get rid of regions.
2015-10-22 16:35:13 +02:00
Matthias Clasen
2dc63dad34
Don't use g_slist_next in gtktreeview.c
...
We generally use ->next directly.
2015-10-20 06:14:57 -04:00
Alexander Larsson
d5f1754981
gtk: Stop setting GDK_EXPOSURE_MASK on random widgets
...
These days exposure happens only on the native windows (generally the
toplevel window) and is propagated down recursively. The expose event
is only useful for backwards compat, and in fact, for double buffered
widgets we totally ignore the event (and non-double buffering breaks
on wayland).
So, by not setting the mask we avoid emitting these events and then
later ignoring them.
We still keep it on eventbox, fixed and layout as these are used
in weird ways that want backwards compat.
2015-09-14 11:01:13 +02:00
Benjamin Otte
e1ecdd3ef5
treeview: Donate a priv variable to gtk_tree_view_init()
2015-09-07 14:34:02 +02:00
Matthias Clasen
2da31e53b0
treeview: Convert to g_object_notify_by_pspec
...
This avoids pspec lookup overhead in g_object_notify.
2015-09-06 17:11:36 -04:00
Christian Hergert
b37400752b
treeview: check for pixel cache before setting property
...
Code exists in the wild that calls this function after the widget has
been destroyed (and the pixel cache released). Simply check that the
pixel cache exists to preserve the existing state.
2015-08-20 11:13:30 -07:00
Benjamin Otte
ceab99ff2f
treeview: Don't underallocate editing widgets that are too big
2015-07-21 02:28:53 +02:00
Matthias Clasen
ee43462d74
treeview: Add an explicit return for clarity
...
I believe that first_column can only ever be NULL here if
last_column is NULL too, in which case we'd exited already.
But coverity doesn't see that, so add an explicit exit.
2015-07-17 18:41:14 -04:00
Cosimo Cecchi
15908cfdf9
treeview: don't call gtk_style_context_set_background()
2015-07-01 16:09:23 -07:00
Christian Hergert
fb06b6e4b8
treeview: always pixelcache widget contents
...
GtkTreeView has a particularly expensive drawing path. This can cause
issues when part of animated widget sequences. Caching the content while
a model is attached helps reduce the number of full redraws during
exposure greatly.
https://bugzilla.gnome.org/show_bug.cgi?id=751082
2015-06-16 18:08:22 -07:00
Emmanuele Bassi
56faf49b8e
docs: Improve deprecation notice for rules-hint property
...
Specify that the theme is wholly in control.
https://bugzilla.gnome.org/show_bug.cgi?id=750718
2015-06-11 11:45:03 +01:00
Matthias Clasen
121c195521
tree view: Fix compiler warnings
...
Fix warnings due to -Wdeclaration-after-statement and -Wshadow.
2015-06-02 09:08:16 -04:00
Carlos Garnacho
b666f14ef8
treeview: Avoid usage of gdk_window_get_device_position() during DnD
...
Just use the last coordinates given on XdndPosition/drag_motion() in
order to trigger scrolling.
When running on Xwayland, the pointer position is unknown at this
stage on the X11 side, so the coordinates given here are bogus.
This change avoids both roundtrips and this situation.
https://bugzilla.gnome.org/show_bug.cgi?id=749679
2015-05-21 18:11:21 +02:00
Matthias Clasen
a89e99b0be
tree view: Avoid a crash with rubberbanding
...
When a treeview is destroyed while rubberbanding is going
on, we crash because the rb tree is nuked before we want
to access it to stop the rubberbanding. To avoid this crash
end the rubberbanding early in destroy().
See
https://bugzilla.redhat.com/show_bug.cgi?id=1173904
2015-04-08 18:54:45 -04:00
Benjamin Otte
93c3b90f6a
treeview: Fix copy/paste bug
...
Introduced in 7eecb16404
2015-02-06 03:13:59 +01:00
Benjamin Otte
7eecb16404
treeview: Don't create an overly large pixel cache
...
GPUs generally have problems when you create a 35000px wide surface.
Luckily X catches this and sends a BadAlloc. Which GTK immediately
abort()s on.
Testcase included.
https://bugzilla.redhat.com/show_bug.cgi?id=1163579
2015-02-05 18:57:29 +01:00
Matthias Clasen
1aee4f0384
Fix a typo
...
commit aa1b7fab9c
introduced a misuse of G_UNLIKELY in
several places. Fix all those.
2015-01-28 10:08:13 -05:00
Alexander Larsson
a1e4ba0dd4
gtktreeview: Fix horizontal grid lines
...
The clipping was wrong so it was not drawing grid lines
outside the visible area, which broke due to the pixel cache.
2015-01-27 17:16:03 +00:00
Benjamin Otte
aa1b7fab9c
css: Remove _gtk_css_style_property_changes_affect_size()
...
... and _gtk_css_style_property_changes_affect_font().
Replace it with _gtk_css_style_property_get_mask_affecting().
2015-01-27 05:04:34 +01:00
Matthias Clasen
9431050618
GtkTreeView: Implement get_border
...
Add an implementation for the new scrollable vfunc that returns
the header height as top border.
2014-12-10 10:01:30 -05:00
Carlos Garnacho
4df13b7262
treeview: remove single-click activation from GtkGestureMultiPress::pressed
...
This is already handled in GtkGestureMultiPress::release, and more in
concordance with how it was done pre-gestures.
https://bugzilla.gnome.org/show_bug.cgi?id=737891
2014-11-07 13:49:43 +01:00
Benjamin Otte
1741de47db
treeview: Apply column-header region always
...
... so that invisible columns get it, too.
Works around weird effects seen when buttons are animated and columns
get hidden/shown.
2014-09-15 16:35:40 +02:00
Matthias Clasen
e2c54098da
tree view: Fix column drag highlight
...
This is a bandaid fix that makes the origin case work again
by switching RGBA window. The arrow case is still unreliable.
https://bugzilla.gnome.org/show_bug.cgi?id=732916
2014-09-07 22:25:23 -04:00
Carlos Garnacho
bf8f824760
treeview: Run the row dragging gesture on the bubble phase
...
This is so signal handlers have an opportunity to undo its effect by
returning GDK_EVENT_STOP on ::button-press-event, just like they used
to do pre-gestures.
https://bugzilla.gnome.org/show_bug.cgi?id=735965
2014-09-04 14:59:08 +02:00