Bug 304870

Summary: kwin crash when maximizing window when using Aurorae and BorderlessMaximizedWindows
Product: [Plasma] kwin Reporter: Robin Appelman <robin>
Component: auroraeAssignee: Martin Flöser <mgraesslin>
Status: RESOLVED FIXED    
Severity: crash CC: kwin-bugs-null, roelgabrieljesus
Priority: NOR Keywords: regression, reproducible
Version: 4.9.0Flags: mgraesslin: ReviewRequest+
Target Milestone: 4.9.1   
Platform: Arch Linux   
OS: Linux   
URL: https://git.reviewboard.kde.org/r/105961/
Latest Commit: Version Fixed In: 4.9.1

Description Robin Appelman 2012-08-09 17:29:49 UTC
Maximizing a window (by either clicking the maximize button or double clicking the window decorations) causes kwin to crash when using an Aurorae theme and having BorderlessMaximizedWindows set to true in kwinrc.

Any way of maximizing the window not involving the window decorations (draging/shortcuts/etc) does not cause a crash, disabling BorderlessMaximizedWindows or using a non aurorae also doesn't cause a crash

Reproducible: Always

Steps to Reproduce:
1. add BorderlessMaximizedWindows=true to kwinrc
2. use an aurorae theme
3. maximize a window by clicking the maximize button
Actual Results:  
kwin crashes

Expected Results:  
window maximizes
Comment 1 Thomas Lübking 2012-08-09 19:56:00 UTC
Next time please also just post the backtrace.

@Martin
maybe we should just move _all_ event triggered actions out of the event cycle (like adding one slot taking an action type parameter and queuedconnection invoke that from every trigger)?

#6  0xb5c8a667 in QGraphicsItem::acceptHoverEvents() const () from /lib/libQtGui.so.4
#7  0xb70618bd in ?? () from /lib/libQtDeclarative.so.4
#8  0xb5c96017 in QGraphicsItem::sceneEvent(QEvent*) () from /lib/libQtGui.so.4
#9  0xb7053253 in QDeclarativeItem::sceneEvent(QEvent*) () from /lib/libQtDeclarative.so.4
#10 0xb70600ee in ?? () from /lib/libQtDeclarative.so.4
#11 0xb5cc0f00 in ?? () from /lib/libQtGui.so.4
#12 0xb5cc1b01 in ?? () from /lib/libQtGui.so.4
#13 0xb5cc2507 in QGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent*) () from /lib/libQtGui.so.4
#14 0xb5cd62aa in QGraphicsScene::event(QEvent*) () from /lib/libQtGui.so.4
#15 0xb5637f5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/libQtGui.so.4
#16 0xb563c95f in QApplication::notify(QObject*, QEvent*) () from /lib/libQtGui.so.4
#17 0xb67ffc61 in KApplication::notify(QObject*, QEvent*) () from /lib/libkdeui.so.5
#18 0xb7624ebf in notify (e=0xbfc3b480, o=0x93dcab0, this=0xbfc3c328) at /home/src/KDE4/kde-workspace/kwin/main.cpp:371
#19 KWin::Application::notify (this=0xbfc3c328, o=0x93dcab0, e=0xbfc3b480) at /home/src/KDE4/kde-workspace/kwin/main.cpp:367
#20 0xb6159c0e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /lib/libQtCore.so.4
#21 0xb563606d in ?? () from /lib/libQtGui.so.4
#22 0xb5cef662 in QGraphicsView::mouseReleaseEvent(QMouseEvent*) () from /lib/libQtGui.so.4
#23 0xb5690ecf in QWidget::event(QEvent*) () from /lib/libQtGui.so.4
#24 0xb5a9c595 in QFrame::event(QEvent*) () from /lib/libQtGui.so.4
#25 0xb5b2ce13 in QAbstractScrollArea::viewportEvent(QEvent*) () from /lib/libQtGui.so.4
#26 0xb5cf321c in QGraphicsView::viewportEvent(QEvent*) () from /lib/libQtGui.so.4
#27 0xb5b2f606 in ?? () from /lib/libQtGui.so.4
#28 0xb6159d7e in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /lib/libQtCore.so.4
#29 0xb5637f2d in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/libQtGui.so.4
#30 0xb563d442 in QApplication::notify(QObject*, QEvent*) () from /lib/libQtGui.so.4
#31 0xb67ffc61 in KApplication::notify(QObject*, QEvent*) () from /lib/libkdeui.so.5
#32 0xb7624ebf in notify (e=0xbfc3bbf4, o=0x94269f8, this=0xbfc3c328) at /home/src/KDE4/kde-workspace/kwin/main.cpp:371
#33 KWin::Application::notify (this=0xbfc3c328, o=0x94269f8, e=0xbfc3bbf4) at /home/src/KDE4/kde-workspace/kwin/main.cpp:367
#34 0xb6159c0e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /lib/libQtCore.so.4
#35 0xb5638dc4 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /lib/libQtGui.so.4
#36 0xb56c10f5 in ?? () from /lib/libQtGui.so.4
#37 0xb56bfda3 in QApplication::x11ProcessEvent(_XEvent*) () from /lib/libQtGui.so.4
#38 0xb56e9efd in ?? () from /lib/libQtGui.so.4
#39 0xb61586ec in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4
#40 0xb61589e1 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/libQtCore.so.4
#41 0xb615dc7a in QCoreApplication::exec() () from /lib/libQtCore.so.4
#42 0xb5635de4 in QApplication::exec() () from /lib/libQtGui.so.4
#43 0xb7627799 in kdemain (argc=3, argv=0xbfc3c414) at /home/src/KDE4/kde-workspace/kwin/main.cpp:545
#44 0x0804873b in main (argc=3, argv=0xbfc3c414) at /home/src/KDE4/BUILD_stable/workspace/kwin/kwin_dummy.cpp:3
Comment 2 Martin Flöser 2012-08-10 06:52:12 UTC
> maybe we should just move _all_ event triggered actions out of the event
> cycle (like adding one slot taking an action type parameter and
> queuedconnection invoke that from every trigger)?
if I see it correctly the double click was the only remaining one. MousePress and release are already handled by emitting a new event and I just tried it: close through mouse click does not crash.
Comment 3 Thomas Lübking 2012-08-10 12:37:32 UTC
I caused this very crash and the backtrace using the maximize button ...
Comment 4 Martin Flöser 2012-08-10 14:58:15 UTC
Git commit c0d72b06b842985b36fb70eada6c3f624ab39a3f by Martin Gräßlin.
Committed on 10/08/2012 at 08:52.
Pushed by graesslin into branch 'KDE/4.9'.

Delay maximize operation by one event cycle

The result of maximizing a window might be the decoration
going away. Because of that we need to delay the handling of
maximize and title bar double click by one cycle as had been
done for other close operations in 0fea5325
FIXED-IN: 4.9.1
REVIEW: 105961

M  +28   -0    kwin/clients/aurorae/src/aurorae.cpp
M  +4    -0    kwin/clients/aurorae/src/aurorae.h

http://commits.kde.org/kde-workspace/c0d72b06b842985b36fb70eada6c3f624ab39a3f
Comment 5 Thomas Lübking 2012-08-21 20:57:22 UTC
*** Bug 305567 has been marked as a duplicate of this bug. ***