diff options
author | Marvin W <git@larma.de> | 2020-04-01 00:30:33 +0200 |
---|---|---|
committer | Marvin W <git@larma.de> | 2020-04-01 00:30:37 +0200 |
commit | 2f52291be546b6fd68a1d8c4eb81978cb592a882 (patch) | |
tree | 0be4be59d2484a9b273710747c42ae3cb14c0a07 | |
parent | 12cd56612dd6edd056e2cd8aae59ea3ae8f05d1e (diff) | |
download | dino-2f52291be546b6fd68a1d8c4eb81978cb592a882.tar.gz dino-2f52291be546b6fd68a1d8c4eb81978cb592a882.zip |
Fix issue rendering messages outside reachable scroll area
Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/2556
-rw-r--r-- | main/CMakeLists.txt | 1 | ||||
-rw-r--r-- | main/data/conversation_content_view/view.ui | 3 | ||||
-rw-r--r-- | main/src/ui/conversation_content_view/conversation_view.vala | 8 | ||||
-rw-r--r-- | main/src/ui/util/size_request_box.vala | 11 |
4 files changed, 21 insertions, 2 deletions
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 5dc69dcb..c9e3b879 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -161,6 +161,7 @@ SOURCES src/ui/util/helper.vala src/ui/util/label_hybrid.vala src/ui/util/sizing_bin.vala + src/ui/util/size_request_box.vala src/ui/util/scaling_image.vala src/ui/util/preview_file_chooser_native.vala CUSTOM_VAPIS diff --git a/main/data/conversation_content_view/view.ui b/main/data/conversation_content_view/view.ui index fc7132aa..af05d285 100644 --- a/main/data/conversation_content_view/view.ui +++ b/main/data/conversation_content_view/view.ui @@ -28,11 +28,12 @@ <object class="GtkEventBox" id="main_event_box"> <property name="visible">True</property> <child> - <object class="GtkBox" id="main"> + <object class="DinoUiSizeRequestBox" id="main"> <property name="margin-bottom">15</property> <property name="expand">False</property> <property name="orientation">vertical</property> <property name="visible">True</property> + <property name="size-request-mode">height-for-width</property> </object> </child> </object> diff --git a/main/src/ui/conversation_content_view/conversation_view.vala b/main/src/ui/conversation_content_view/conversation_view.vala index c68ee5de..ac6df1fc 100644 --- a/main/src/ui/conversation_content_view/conversation_view.vala +++ b/main/src/ui/conversation_content_view/conversation_view.vala @@ -106,7 +106,7 @@ public class ConversationView : Box, Plugins.ConversationItemCollection, Plugins // Get widget under pointer int h = 0; bool @break = false; - Widget w = null; + Widget? w = null; main.@foreach((widget) => { if (break) return; @@ -118,6 +118,12 @@ public class ConversationView : Box, Plugins.ConversationItemCollection, Plugins } }); + if (w == null) { + if (currently_highlighted != null) currently_highlighted.unset_state_flags(StateFlags.PRELIGHT); + currently_highlighted = null; + return; + } + // Get widget coordinates in main int widget_x, widget_y; w.translate_coordinates(main, 0, 0, out widget_x, out widget_y); diff --git a/main/src/ui/util/size_request_box.vala b/main/src/ui/util/size_request_box.vala new file mode 100644 index 00000000..c9adcb70 --- /dev/null +++ b/main/src/ui/util/size_request_box.vala @@ -0,0 +1,11 @@ +using Gtk; + +namespace Dino.Ui { +class SizeRequestBox : Box { + public SizeRequestMode size_request_mode { get; set; default = SizeRequestMode.CONSTANT_SIZE; } + + public override Gtk.SizeRequestMode get_request_mode() { + return size_request_mode; + } +} +}
\ No newline at end of file |