diff --git a/src/chat.py b/src/chat.py
index fc9348352..ac146552b 100644
--- a/src/chat.py
+++ b/src/chat.py
@@ -363,38 +363,27 @@ class Chat:
textview.scroll_to_iter(end_iter, 0, False, 1, 1)
return False
- def size_request(self, a, b, xml_top, message_scrolledwindow):
+ def size_request(self, message_textview , requisition, xml_top,
+ message_scrolledwindow):
''' When message_textview changes its size. If the new height
will enlarge the window, enable the scrollbar automatic policy'''
- message_textview = xml_top.get_widget('message_textview')
+ if message_textview.window is None:
+ return
conversation_scrolledwindow = \
xml_top.get_widget('conversation_scrolledwindow')
conversation_textview = \
xml_top.get_widget('conversation_textview')
- vpaned = xml_top.get_widget('vpaned')
- if not vpaned.window:
- return
-
- banner_eventbox = xml_top.get_widget('banner_eventbox')
- actions_hbox = xml_top.get_widget('actions_hbox')
- if not actions_hbox:
- actions_hbox = xml_top.get_widget('gc_actions_hbox')
-
- x1 = conversation_scrolledwindow.get_property('height-request')
- x2 = b.height
- x3 = vpaned.window.get_size()[1]
- x4 = banner_eventbox.size_request()[1]
- x5 = actions_hbox.size_request()[1]
- # difference between old height and new height
- diff_y = message_textview.window.get_size()[1] - b.height
- add_length = 22
- if not self.compact_view_current_state:
- add_length += x4 + x5
+
+ min_height = conversation_scrolledwindow.get_property('height-request')
+ conversation_height = conversation_textview.window.get_size()[1]
+ message_height = message_textview.window.get_size()[1]
+ diff_y = message_height - requisition.height
if diff_y is not 0:
- if x2 + x1 + add_length > x3:
+ if conversation_height + diff_y < min_height:
message_scrolledwindow.set_property('vscrollbar-policy', gtk.POLICY_AUTOMATIC)
message_scrolledwindow.set_property('hscrollbar-policy', gtk.POLICY_AUTOMATIC)
- message_scrolledwindow.set_property('height-request', x3 - x1 - add_length)
+ message_scrolledwindow.set_property('height-request', message_height + \
+ conversation_height - min_height)
self.bring_scroll_to_end(message_textview)
else:
message_scrolledwindow.set_property('vscrollbar-policy', gtk.POLICY_NEVER)
diff --git a/src/gtkgui.glade b/src/gtkgui.glade
index 5d5786a7e..1a1e3f0eb 100644
--- a/src/gtkgui.glade
+++ b/src/gtkgui.glade
@@ -8560,14 +8560,16 @@ Custom
6
-
+
True
- True
+ False
+ 6
+ 1
200
- 40
+ 60
True
True
GTK_POLICY_AUTOMATIC
@@ -8601,18 +8603,18 @@ Custom
- False
- True
+ 0
+ True
+ True
- 45
True
True
- GTK_POLICY_AUTOMATIC
- GTK_POLICY_AUTOMATIC
+ GTK_POLICY_NEVER
+ GTK_POLICY_NEVER
GTK_SHADOW_IN
GTK_CORNER_TOP_LEFT
@@ -8639,8 +8641,9 @@ Custom
- False
- False
+ 0
+ False
+ True
@@ -10065,14 +10068,15 @@ Status message
-
+
True
- True
+ False
+ 1
3
- 40
+ 60
True
True
GTK_POLICY_AUTOMATIC
@@ -10106,61 +10110,48 @@ Status message
- True
- True
+ 0
+ True
+ True
-
+
+ 3
True
True
- False
- 0
+ GTK_POLICY_NEVER
+ GTK_POLICY_NEVER
+ GTK_SHADOW_IN
+ GTK_CORNER_TOP_LEFT
-
- 3
- 53
+
+ 1
True
True
- GTK_POLICY_AUTOMATIC
- GTK_POLICY_AUTOMATIC
- GTK_SHADOW_IN
- GTK_CORNER_TOP_LEFT
-
-
-
- 1
- True
- True
- True
- False
- True
- GTK_JUSTIFY_LEFT
- GTK_WRAP_WORD
- True
- 2
- 2
- 0
- 2
- 2
- 0
-
-
-
-
+ True
+ False
+ True
+ GTK_JUSTIFY_LEFT
+ GTK_WRAP_WORD
+ True
+ 2
+ 2
+ 0
+ 2
+ 2
+ 0
+
+
-
- 0
- True
- True
-
- False
- False
+ 0
+ False
+ True