Re: [OE-core] [PATCH 3/3] vte: fix scroll issue

2012-02-28 Thread Zhai, Edwin
On Wed, Feb 22, 2012 at 11:03:01PM +, Richard Purdie wrote:
 On Wed, 2012-02-22 at 13:33 +0800, edwin.z...@intel.com wrote:
  From: Zhai Edwin edwin.z...@intel.com
  
  On qemu x86-64, scrollbar in vte got broken with one commit to change the 
  way
  of emiting changed signal. This patch revert it as work around.
  
  [YOCTO #1906] got fixed.
 
 
 This patch worries me a bit (well, a lot really). Why is this only
 broken on 64 bit? How does this revert fix things? It looks like its not
 the real problem to me?

The root cause is unkown. I suspect something in gtk caused the changed 
signal 
missing with the new method. I have created a bug for vte in gnome.org, but no 
response so far.



 
 Cheers,
 
 Richard
 
  Signed-off-by: Zhai Edwin edwin.z...@intel.com
  ---
   meta/recipes-support/vte/vte.inc |3 +-
   meta/recipes-support/vte/vte/scrollbar_fix.patch |  122 
  ++
   meta/recipes-support/vte/vte_0.28.2.bb   |2 +-
   3 files changed, 125 insertions(+), 2 deletions(-)
   create mode 100644 meta/recipes-support/vte/vte/scrollbar_fix.patch
  
  diff --git a/meta/recipes-support/vte/vte.inc 
  b/meta/recipes-support/vte/vte.inc
  index 54bd8ae..d3406e5 100644
  --- a/meta/recipes-support/vte/vte.inc
  +++ b/meta/recipes-support/vte/vte.inc
  @@ -6,7 +6,8 @@ RDEPENDS_libvte = vte-termcap
   
   inherit gnome
   
  -SRC_URI += file://introspection.patch
  +SRC_URI += file://introspection.patch\ 
  +file://scrollbar_fix.patch
   
   EXTRA_OECONF = --disable-gtk-doc --disable-python --disable-introspection
   
  diff --git a/meta/recipes-support/vte/vte/scrollbar_fix.patch 
  b/meta/recipes-support/vte/vte/scrollbar_fix.patch
  new file mode 100644
  index 000..707377a
  --- /dev/null
  +++ b/meta/recipes-support/vte/vte/scrollbar_fix.patch
  @@ -0,0 +1,122 @@
  +On qemu x86-64, matchbox-terminal has broken scrollbar, because of 
  following
  +commit in vte. This patch revert it as work around.
  +
  +Signed-off-by: Zhai Edwin edwin.z...@intel.com
  +
  +Upstream-Status: Inappropriate [workaround]
  +
  +commit 6eadb8494797e44910b86b5e101823cf527c04e1
  +Author: Kristian Høgsberg k...@bitplanet.net
  +Date:   Thu Jul 15 09:07:51 2010 -0400
  +
  +Use accessors for setting adjustment
  +
  +We use g_object_freeze_notify() to emit the same amount of ::changed
  +signals.
  +
  +Index: vte-0.28.2/src/vte.c
  +===
  +--- vte-0.28.2.orig/src/vte.c  2011-08-29 05:31:45.0 +0800
   vte-0.28.2/src/vte.c   2012-02-21 11:03:22.0 +0800
  +@@ -2018,15 +2018,13 @@
  +   glong v;
  +   gdouble current;
  + 
  +-  g_object_freeze_notify (G_OBJECT (terminal-adjustment));
  +-
  +   v = _vte_ring_delta (screen-row_data);
  +   current = gtk_adjustment_get_lower(terminal-adjustment);
  +   if (current != v) {
  +   _vte_debug_print(VTE_DEBUG_ADJ,
  +   Changing lower bound from %.0f to 
  %ld\n,
  +current, v);
  +-  gtk_adjustment_set_lower(terminal-adjustment, v);
  ++  terminal-adjustment-lower = v;
  +   changed = TRUE;
  +   }
  + 
  +@@ -2039,19 +2037,19 @@
  +   _vte_debug_print(VTE_DEBUG_ADJ,
  +   Changing upper bound from %.0f to 
  %ld\n,
  +current, v);
  +-  gtk_adjustment_set_upper(terminal-adjustment, v);
  ++  terminal-adjustment-upper = v;
  +   changed = TRUE;
  +   }
  + 
  +-  g_object_thaw_notify (G_OBJECT (terminal-adjustment));
  +-
  +-  if (changed)
  ++  if (changed) {
  +   _vte_debug_print(VTE_DEBUG_SIGNALS,
  +   Emitting adjustment_changed.\n);
  ++  gtk_adjustment_changed(terminal-adjustment);
  ++  }
  +   terminal-pvt-adjustment_changed_pending = FALSE;
  +   }
  +   if (terminal-pvt-adjustment_value_changed_pending) {
  +-  glong v, delta;
  ++  glong v;
  +   _vte_debug_print(VTE_DEBUG_SIGNALS,
  +   Emitting adjustment_value_changed.\n);
  +   terminal-pvt-adjustment_value_changed_pending = FALSE;
  +@@ -2062,9 +2060,9 @@
  +* via the adjustment - e.g. user interaction with the
  +* scrollbar
  +*/
  +-  delta = terminal-pvt-screen-scroll_delta;
  ++  terminal-adjustment-value = 
  terminal-pvt-screen-scroll_delta;
  +   terminal-pvt-screen-scroll_delta = v;
  +-  gtk_adjustment_set_value(terminal-adjustment, delta);
  ++  gtk_adjustment_value_changed(terminal-adjustment);
  +   }
  +   }
  + 

Re: [OE-core] [PATCH 3/3] vte: fix scroll issue

2012-02-22 Thread Richard Purdie
On Wed, 2012-02-22 at 13:33 +0800, edwin.z...@intel.com wrote:
 From: Zhai Edwin edwin.z...@intel.com
 
 On qemu x86-64, scrollbar in vte got broken with one commit to change the way
 of emiting changed signal. This patch revert it as work around.
 
 [YOCTO #1906] got fixed.


This patch worries me a bit (well, a lot really). Why is this only
broken on 64 bit? How does this revert fix things? It looks like its not
the real problem to me?

Cheers,

Richard

 Signed-off-by: Zhai Edwin edwin.z...@intel.com
 ---
  meta/recipes-support/vte/vte.inc |3 +-
  meta/recipes-support/vte/vte/scrollbar_fix.patch |  122 
 ++
  meta/recipes-support/vte/vte_0.28.2.bb   |2 +-
  3 files changed, 125 insertions(+), 2 deletions(-)
  create mode 100644 meta/recipes-support/vte/vte/scrollbar_fix.patch
 
 diff --git a/meta/recipes-support/vte/vte.inc 
 b/meta/recipes-support/vte/vte.inc
 index 54bd8ae..d3406e5 100644
 --- a/meta/recipes-support/vte/vte.inc
 +++ b/meta/recipes-support/vte/vte.inc
 @@ -6,7 +6,8 @@ RDEPENDS_libvte = vte-termcap
  
  inherit gnome
  
 -SRC_URI += file://introspection.patch
 +SRC_URI += file://introspection.patch\ 
 +file://scrollbar_fix.patch
  
  EXTRA_OECONF = --disable-gtk-doc --disable-python --disable-introspection
  
 diff --git a/meta/recipes-support/vte/vte/scrollbar_fix.patch 
 b/meta/recipes-support/vte/vte/scrollbar_fix.patch
 new file mode 100644
 index 000..707377a
 --- /dev/null
 +++ b/meta/recipes-support/vte/vte/scrollbar_fix.patch
 @@ -0,0 +1,122 @@
 +On qemu x86-64, matchbox-terminal has broken scrollbar, because of following
 +commit in vte. This patch revert it as work around.
 +
 +Signed-off-by: Zhai Edwin edwin.z...@intel.com
 +
 +Upstream-Status: Inappropriate [workaround]
 +
 +commit 6eadb8494797e44910b86b5e101823cf527c04e1
 +Author: Kristian Høgsberg k...@bitplanet.net
 +Date:   Thu Jul 15 09:07:51 2010 -0400
 +
 +Use accessors for setting adjustment
 +
 +We use g_object_freeze_notify() to emit the same amount of ::changed
 +signals.
 +
 +Index: vte-0.28.2/src/vte.c
 +===
 +--- vte-0.28.2.orig/src/vte.c2011-08-29 05:31:45.0 +0800
  vte-0.28.2/src/vte.c 2012-02-21 11:03:22.0 +0800
 +@@ -2018,15 +2018,13 @@
 + glong v;
 + gdouble current;
 + 
 +-g_object_freeze_notify (G_OBJECT (terminal-adjustment));
 +-
 + v = _vte_ring_delta (screen-row_data);
 + current = gtk_adjustment_get_lower(terminal-adjustment);
 + if (current != v) {
 + _vte_debug_print(VTE_DEBUG_ADJ,
 + Changing lower bound from %.0f to 
 %ld\n,
 +  current, v);
 +-gtk_adjustment_set_lower(terminal-adjustment, v);
 ++terminal-adjustment-lower = v;
 + changed = TRUE;
 + }
 + 
 +@@ -2039,19 +2037,19 @@
 + _vte_debug_print(VTE_DEBUG_ADJ,
 + Changing upper bound from %.0f to 
 %ld\n,
 +  current, v);
 +-gtk_adjustment_set_upper(terminal-adjustment, v);
 ++terminal-adjustment-upper = v;
 + changed = TRUE;
 + }
 + 
 +-g_object_thaw_notify (G_OBJECT (terminal-adjustment));
 +-
 +-if (changed)
 ++if (changed) {
 + _vte_debug_print(VTE_DEBUG_SIGNALS,
 + Emitting adjustment_changed.\n);
 ++gtk_adjustment_changed(terminal-adjustment);
 ++}
 + terminal-pvt-adjustment_changed_pending = FALSE;
 + }
 + if (terminal-pvt-adjustment_value_changed_pending) {
 +-glong v, delta;
 ++glong v;
 + _vte_debug_print(VTE_DEBUG_SIGNALS,
 + Emitting adjustment_value_changed.\n);
 + terminal-pvt-adjustment_value_changed_pending = FALSE;
 +@@ -2062,9 +2060,9 @@
 +  * via the adjustment - e.g. user interaction with the
 +  * scrollbar
 +  */
 +-delta = terminal-pvt-screen-scroll_delta;
 ++terminal-adjustment-value = 
 terminal-pvt-screen-scroll_delta;
 + terminal-pvt-screen-scroll_delta = v;
 +-gtk_adjustment_set_value(terminal-adjustment, delta);
 ++gtk_adjustment_value_changed(terminal-adjustment);
 + }
 + }
 + }
 +@@ -2141,15 +2139,13 @@
 + 
 + _vte_terminal_adjust_adjustments(terminal);
 + 
 +-g_object_freeze_notify(G_OBJECT(terminal-adjustment));
 +-
 + /* The step increment should always be one. */
 + v = gtk_adjustment_get_step_increment(terminal-adjustment);
 +   

[OE-core] [PATCH 3/3] vte: fix scroll issue

2012-02-21 Thread edwin . zhai
From: Zhai Edwin edwin.z...@intel.com

On qemu x86-64, scrollbar in vte got broken with one commit to change the way
of emiting changed signal. This patch revert it as work around.

[YOCTO #1906] got fixed.

Signed-off-by: Zhai Edwin edwin.z...@intel.com
---
 meta/recipes-support/vte/vte.inc |3 +-
 meta/recipes-support/vte/vte/scrollbar_fix.patch |  122 ++
 meta/recipes-support/vte/vte_0.28.2.bb   |2 +-
 3 files changed, 125 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-support/vte/vte/scrollbar_fix.patch

diff --git a/meta/recipes-support/vte/vte.inc b/meta/recipes-support/vte/vte.inc
index 54bd8ae..d3406e5 100644
--- a/meta/recipes-support/vte/vte.inc
+++ b/meta/recipes-support/vte/vte.inc
@@ -6,7 +6,8 @@ RDEPENDS_libvte = vte-termcap
 
 inherit gnome
 
-SRC_URI += file://introspection.patch
+SRC_URI += file://introspection.patch\ 
+file://scrollbar_fix.patch
 
 EXTRA_OECONF = --disable-gtk-doc --disable-python --disable-introspection
 
diff --git a/meta/recipes-support/vte/vte/scrollbar_fix.patch 
b/meta/recipes-support/vte/vte/scrollbar_fix.patch
new file mode 100644
index 000..707377a
--- /dev/null
+++ b/meta/recipes-support/vte/vte/scrollbar_fix.patch
@@ -0,0 +1,122 @@
+On qemu x86-64, matchbox-terminal has broken scrollbar, because of following
+commit in vte. This patch revert it as work around.
+
+Signed-off-by: Zhai Edwin edwin.z...@intel.com
+
+Upstream-Status: Inappropriate [workaround]
+
+commit 6eadb8494797e44910b86b5e101823cf527c04e1
+Author: Kristian Høgsberg k...@bitplanet.net
+Date:   Thu Jul 15 09:07:51 2010 -0400
+
+Use accessors for setting adjustment
+
+We use g_object_freeze_notify() to emit the same amount of ::changed
+signals.
+
+Index: vte-0.28.2/src/vte.c
+===
+--- vte-0.28.2.orig/src/vte.c  2011-08-29 05:31:45.0 +0800
 vte-0.28.2/src/vte.c   2012-02-21 11:03:22.0 +0800
+@@ -2018,15 +2018,13 @@
+   glong v;
+   gdouble current;
+ 
+-  g_object_freeze_notify (G_OBJECT (terminal-adjustment));
+-
+   v = _vte_ring_delta (screen-row_data);
+   current = gtk_adjustment_get_lower(terminal-adjustment);
+   if (current != v) {
+   _vte_debug_print(VTE_DEBUG_ADJ,
+   Changing lower bound from %.0f to 
%ld\n,
+current, v);
+-  gtk_adjustment_set_lower(terminal-adjustment, v);
++  terminal-adjustment-lower = v;
+   changed = TRUE;
+   }
+ 
+@@ -2039,19 +2037,19 @@
+   _vte_debug_print(VTE_DEBUG_ADJ,
+   Changing upper bound from %.0f to 
%ld\n,
+current, v);
+-  gtk_adjustment_set_upper(terminal-adjustment, v);
++  terminal-adjustment-upper = v;
+   changed = TRUE;
+   }
+ 
+-  g_object_thaw_notify (G_OBJECT (terminal-adjustment));
+-
+-  if (changed)
++  if (changed) {
+   _vte_debug_print(VTE_DEBUG_SIGNALS,
+   Emitting adjustment_changed.\n);
++  gtk_adjustment_changed(terminal-adjustment);
++  }
+   terminal-pvt-adjustment_changed_pending = FALSE;
+   }
+   if (terminal-pvt-adjustment_value_changed_pending) {
+-  glong v, delta;
++  glong v;
+   _vte_debug_print(VTE_DEBUG_SIGNALS,
+   Emitting adjustment_value_changed.\n);
+   terminal-pvt-adjustment_value_changed_pending = FALSE;
+@@ -2062,9 +2060,9 @@
+* via the adjustment - e.g. user interaction with the
+* scrollbar
+*/
+-  delta = terminal-pvt-screen-scroll_delta;
++  terminal-adjustment-value = 
terminal-pvt-screen-scroll_delta;
+   terminal-pvt-screen-scroll_delta = v;
+-  gtk_adjustment_set_value(terminal-adjustment, delta);
++  gtk_adjustment_value_changed(terminal-adjustment);
+   }
+   }
+ }
+@@ -2141,15 +2139,13 @@
+ 
+   _vte_terminal_adjust_adjustments(terminal);
+ 
+-g_object_freeze_notify(G_OBJECT(terminal-adjustment));
+-
+   /* The step increment should always be one. */
+   v = gtk_adjustment_get_step_increment(terminal-adjustment);
+   if (v != 1) {
+   _vte_debug_print(VTE_DEBUG_ADJ,
+   Changing step increment from %.0lf to %ld\n,
+   v, terminal-row_count);
+-  gtk_adjustment_set_step_increment(terminal-adjustment, 1);
++