Bug 337853 - Kwin aborts when window switcher is activitated through screenedges
Summary: Kwin aborts when window switcher is activitated through screenedges
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: tabbox (show other bugs)
Version: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-28 11:19 UTC by Bhushan Shah
Modified: 2014-08-11 19:50 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bhushan Shah 2014-07-28 11:19:37 UTC
1) Activate left screen edge for window switching
2) hover over left edge

Thread 1 (Thread 0x7fd6f6e36840 (LWP 499)):
[KCrash Handler]
#6  0x00007fd6f6504d67 in raise () from /usr/lib/libc.so.6
#7  0x00007fd6f6506118 in abort () from /usr/lib/libc.so.6
#8  0x00007fd6f64fdbdd in __assert_fail_base () from /usr/lib/libc.so.6
#9  0x00007fd6f64fdc92 in __assert_fail () from /usr/lib/libc.so.6
#10 0x00007fd6f69d9f51 in KWin::TabBox::TabBox::removeTabBoxGrab (this=0x116b720) at /home/bshah/aur/kwin-git/src/kwin/tabbox/tabbox.cpp:1561
#11 0x00007fd6f69dbd40 in KWin::TabBox::TabBox::close (this=this@entry=0x116b720, abort=abort@entry=false) at /home/bshah/aur/kwin-git/src/kwin/tabbox/tabbox.cpp:1395
#12 0x00007fd6f69dbedb in KWin::TabBox::TabBox::accept (this=0x116b720) at /home/bshah/aur/kwin-git/src/kwin/tabbox/tabbox.cpp:1406
#13 0x00007fd6f69dc039 in KWin::TabBox::TabBox::toggle (this=0x116b720, eb=KWin::ElectricLeft) at /home/bshah/aur/kwin-git/src/kwin/tabbox/tabbox.cpp:1095
#14 0x00007fd6f6a0c008 in KWin::TabBox::TabBox::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x7fff1b181cb0) at /home/bshah/aur/kwin-git/src/build/moc_tabbox.cpp:190
#15 0x00007fd6ee5c0bc2 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const () from /usr/lib/libQt5Core.so.5
#16 0x00007fd6ee5c5c0e in QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) () from /usr/lib/libQt5Core.so.5
#17 0x00007fd6f69ed50f in invokeMethod (val9=..., val8=..., val7=..., val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=..., ret=..., member=<optimized out>, obj=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs.h:382
#18 KWin::Edge::handleByCallback (this=this@entry=0x1201dd0) at /home/bshah/aur/kwin-git/src/kwin/screenedge.cpp:246
#19 0x00007fd6f69eea05 in handleByCallback (this=0x1201dd0) at /home/bshah/aur/kwin-git/src/kwin/screenedge.cpp:187
#20 KWin::Edge::handle (this=0x1201dd0, cursorPos=...) at /home/bshah/aur/kwin-git/src/kwin/screenedge.cpp:201
#21 0x00007fd6f69eea5e in KWin::Edge::check (this=0x1201dd0, cursorPos=..., triggerTime=..., forceNoPushBack=<optimized out>) at /home/bshah/aur/kwin-git/src/kwin/screenedge.cpp:140
#22 0x00007fd6f69eee31 in KWin::ScreenEdges::check (this=0x1163530, pos=..., now=..., forceNoPushBack=true) at /home/bshah/aur/kwin-git/src/kwin/screenedge.cpp:1180
#23 0x00007fd6f691518e in KWin::Workspace::workspaceEvent (this=0x1128260, e=0x7fd6d8006770) at /home/bshah/aur/kwin-git/src/kwin/events.cpp:237
#24 0x00007fd6ee5b38f0 in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) () from /usr/lib/libQt5Core.so.5
#25 0x00007fd6e0603ac8 in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#26 0x00007fd6e0604f3b in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#27 0x00007fd6ee5e613a in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#28 0x00007fd6ef26b15c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#29 0x00007fd6ef2706ee in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#30 0x00007fd6ee5b6aeb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#31 0x00007fd6ee5b8ab3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#32 0x00007fd6ee60b422 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#33 0x00007fd6e065631d in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#34 0x00007fd6ee5b4512 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#35 0x00007fd6ee5bbecc in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#36 0x00007fd6f6904f37 in kdemain (argc=1, argv=0x7fff1b182d48) at /home/bshah/aur/kwin-git/src/kwin/main.cpp:554
#37 0x00007fd6f64f1000 in __libc_start_main () from /usr/lib/libc.so.6
#38 0x000000000040080e in _start ()
Comment 1 Thomas Lübking 2014-07-28 12:27:39 UTC
diff --git a/tabbox/tabbox.cpp b/tabbox/tabbox.cpp
index b4ccbde..5a2d7e2 100644
--- a/tabbox/tabbox.cpp
+++ b/tabbox/tabbox.cpp
@@ -1091,11 +1091,10 @@ bool TabBox::toggle(ElectricBorder eb)
     if (!options->focusPolicyIsReasonable())
         return false; // not supported.
     if (isDisplayed()) {
-        ungrabXKeyboard();
         accept();
         return true;
     }
-    if (!grabXKeyboard())
+    if (!establishTabBoxGrab())
         return false;
     m_noModifierGrab = m_tabGrab = true;
     if (m_borderAlternativeActivate.contains(eb))


---------

Prepare for the tabbox to not show up either
(from what i can say this is probably related to not finding the tabbox qml module)
Comment 2 Martin Flöser 2014-08-11 07:13:06 UTC
ShipIt
Comment 3 Thomas Lübking 2014-08-11 19:50:27 UTC
Git commit d44aedbcac1150d276e02dc85744b789ab7fe4b8 by Thomas Lübking.
Committed on 11/08/2014 at 10:35.
Pushed by luebking into branch 'master'.

always use establishTabBoxGrab instead un/grabX*

M  +1    -2    tabbox/tabbox.cpp

http://commits.kde.org/kwin/d44aedbcac1150d276e02dc85744b789ab7fe4b8