gtk_main_get_window_group function return different results for
gtk_grab_add and gtk_grab_remove, but widget address was same in both
functions:

  if (GTK_IS_WINDOW (toplevel))
    return gtk_window_get_group (GTK_WINDOW (toplevel));
  else
    return gtk_window_get_group (NULL);

On gtk_grab_add window group is 0x555555b0b160 for widget 0x555555e50780:
Thread 1 "mate-terminal" hit Breakpoint 3, gtk_main_get_window_group 
(widget=0x555555e50780) at ././gtk/gtkmain.c:2
025
2025      if (GTK_IS_WINDOW (toplevel))
$2044 (widget) = 0x555555e50780
$2045 (toplevel) = 0x555555e50780
$2046 (*widget) = {parent_instance = {g_type_instance = {g_class = 
0x555555e5e800}, ref_count = 1, qdata = 0x2}, priv = 0x555
555e50690}
$2047 (*widget.priv) = {..., window = 0x0, registered_windows = 0x0, parent = 
0x0, event_contr
ollers = 0x0, accessible = 0x0}
#0  gtk_main_get_window_group (widget=0x555555e50780) at ././gtk/gtkmain.c:2025
#1  0x00007ffff71f3bb3 in gtk_grab_add (widget=0x555555e50780) at 
././gtk/gtkmain.c:2231
#2  0x00007ffff70ac1d1 in gtk_cell_renderer_accel_start_editing 
(cell=0x555555845270, event=0x555555d416f0, widget=
0x555555e183f0, path=0x555555e57720 "2:0", background_area=0x7fffffffc2e0, 
cell_area=0x7fffffffc2e0, flags=(unknown
: 0)) at ././gtk/gtkcellrendereraccel.c:497
#3  0x00007ffff70a92dd in gtk_cell_renderer_start_editing (cell=0x555555845270, 
event=0x555555d416f0, widget=0x5555
55e183f0, path=0x555555e57720 "2:0", background_area=0x7fffffffc2e0, 
cell_area=0x7fffffffc2e0, flags=(unknown: 0)) 
at ././gtk/gtkcellrenderer.c:921
#4  0x00007ffff709d47e in gtk_cell_area_activate_cell (area=0x555555e0d140, 
widget=0x555555e183f0, renderer=0x555555845270, event=0x555555d416f0, 
cell_area=0x7fffffffc380, flags=(unknown: 0)) at ././gtk/gtkcellarea.c:3432
#5  0x00007ffff7096407 in gtk_cell_area_real_event (area=0x555555e0d140, 
context=0x555555e26850, widget=0x555555e183f0, event=0x555555d416f0, 
cell_area=0x7fffffffc570, flags=(unknown: 0)) at ././gtk/gtkcellarea.c:1101


At time of gtk_grab_remove, when event is delivered to widget 0x555555e50780 
from gtk_main_do_event, its toplevel was 0x555555ddb0d0
Thread 1 "mate-terminal" hit Breakpoint 3, gtk_main_get_window_group 
(widget=0x555555e50780) at ././gtk/gtkmain.c:2025
2025      if (GTK_IS_WINDOW (toplevel))
$2092 (widget) = 0x555555e50780
$2093 (toplevel) = 0x555555ddb0d0
$2094 (*widget) = {parent_instance = {g_type_instance = {g_class = 
0x555555e5e800}, ref_count = 7, qdata = 0x555555ecf180}, priv = 0x555555e50690}
$2095 (*widget.priv) = {...., window = 0x555555e507e0, registered_windows = 
0x55555595
7d00, parent = 0x555555e183f0, event_controllers = 0x0, accessible = 
0x555555e1d320}
#0  gtk_main_get_window_group (widget=0x555555e50780) at ././gtk/gtkmain.c:2025
#1  0x00007ffff71f3d8c in gtk_grab_remove (widget=0x555555e50780) at 
././gtk/gtkmain.c:2286
#2  0x00007ffff70ac56b in gtk_cell_editable_event_box_key_press_event 
(widget=0x555555e50780, event=0x555555e473c0)
 at ././gtk/gtkcellrendereraccel.c:645


Parent of the widget was changed by gtk_tree_view_multipress_gesture_pressed -> 
.. -> gtk_cell_area_activate_cell -> gtk_cell_area_add_editable -> ..signal.. 
-> gtk_tree_view_column_add_editable_callback -> _gtk_tree_view_add_editable -> 
gtk_tree_view_put -> gtk_widget_set_parent

So, gtk_cell_area_activate_cell of gtk+3 (3.22.7) has incorrect order of 
actions which broke gtk_grab_add / gtk_grab_remove pair
https://github.com/GNOME/gtk/blob/6cc08d60efeb02afc0d67982c3dc205dfd16d7cd/gtk/gtkcellarea.c#L3388

3428   gtk_cell_renderer_start_editing (renderer,
...
3444   gtk_cell_area_add_editable (area, priv->focus_cell, editable_widget, 
cell_area);

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to gtk+3.0 in Ubuntu.
https://bugs.launchpad.net/bugs/1667227

Title:
  mate-terminal crashed with SIGSEGV in g_type_check_instance_is_a() -
  while editing Keyboard Shortcuts

Status in gnome-terminal package in Ubuntu:
  New
Status in gtk+3.0 package in Ubuntu:
  New
Status in mate-terminal package in Ubuntu:
  New

Bug description:
  1) 
  $ lsb_release -rd
  Description:  Ubuntu Zesty Zapus (development branch)
  Release:      17.04

  Installed as Ubuntu-MATE 17.04 "Zesty Zapus" - Alpha amd64

  2) 
  $ apt-cache policy mate-terminal
  mate-terminal:
    Installed: 1.17.0-0ubuntu1
    Candidate: 1.17.0-0ubuntu1
  3) 
  Open mate-terminal
  Select "Edit" -> "Keyboard Shortcuts"
  Select "Help"->"Contents", click on default shortcut key "F1" to change
  Try to set it to various key sequences. Sometimes bug is triggered by 
pressing "Fn" key with some of Alt/Ctrl/Shift, sometimes by selecting 
Ctrl-Shift-W / Crtl-Shift-Alt-W
  Expected: changed keyboard shortcut for "Help"->"Contents"

  4) Abort and closed mate-terminal

  ProblemType: Crash
  DistroRelease: Ubuntu 17.04
  Package: mate-terminal 1.17.0-0ubuntu1
  ProcVersionSignature: Ubuntu 4.10.0-8.10-generic 4.10.0-rc8
  Uname: Linux 4.10.0-8-generic x86_64
  ApportVersion: 2.20.4-0ubuntu2
  Architecture: amd64
  CurrentDesktop: MATE
  Date: Thu Feb 23 09:33:19 2017
  ExecutablePath: /usr/bin/mate-terminal
  ExecutableTimestamp: 1484233434
  InstallationDate: Installed on 2017-02-22 (1 days ago)
  InstallationMedia: Ubuntu-MATE 17.04 "Zesty Zapus" - Alpha amd64 (20170125)
  ProcCmdline: mate-terminal
  ProcCwd: /home/user
  SegvAnalysis:
   Segfault happened at: 0x7f883e41c321 <g_type_check_instance_is_a+65>:        
testb  $0x4,0x16(%rax)
   PC (0x7f883e41c321) ok
   source "$0x4" ok
   destination "0x16(%rax)" (0x70000001e) not located in a known VMA region 
(needed writable region)!
  SegvReason: writing unknown VMA
  Signal: 11
  SourcePackage: mate-terminal
  StacktraceTop:
   g_type_check_instance_is_a () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
   gtk_widget_get_toplevel () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
   ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
   gtk_window_group_add_window () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
   gtk_window_set_transient_for () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  Title: mate-terminal crashed with SIGSEGV in g_type_check_instance_is_a()
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1667227/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to