Bug 257773 - Switch to full screen mode crash under MACOSX
Summary: Switch to full screen mode crash under MACOSX
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-FullScreen (show other bugs)
Version: 1.6.0
Platform: MacPorts macOS
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-24 13:55 UTC by Julien Narboux
Modified: 2020-08-13 15:52 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 3.1.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Narboux 2010-11-24 13:55:09 UTC
Version:           1.6.0 (using KDE 4.5.3) 
OS:                OS X

When I try to switch to fullscreen mode under Digikam 1.6.0 under MacOSX, Digikam crashes. I guess it is a KDE or Qt bug.

Reproducible: Always

Steps to Reproduce:
Switch to fullscreen.

Actual Results:  
Digikam windows disappears

Expected Results:  
A full screen window
Comment 1 caulier.gilles 2010-11-24 13:58:30 UTC
Yes, i confirm. I already see this problem.

I need a gdb backtrace to hack and identify where is located the problem.

Gilles Caulier
Comment 2 caulier.gilles 2010-11-25 17:25:03 UTC
Julien,

Look like the crash is into QT4 :

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000048
0x00007fff84b14923 in -[NSWindow _unlockViewHierarchyForModification] ()
(gdb) bt
#0  0x00007fff84b14923 in -[NSWindow _unlockViewHierarchyForModification] ()
#1  0x00007fff84b1690f in -[NSWindow _setFrameCommon:display:stashSize:] ()
#2  0x000000010370c9e9 in QWidgetPrivate::setGeometry_sys ()
#3  0x00000001037be17c in QWidget::setGeometry ()
#4  0x000000010370d017 in QWidget::setWindowState ()
#5  0x0000000100199300 in Digikam::DigikamApp::slotToggleFullScreen ()
#6  0x00000001001b4539 in Digikam::DigikamApp::qt_metacall ()
#7  0x00000001047bdef6 in QMetaObject::activate ()
#8  0x0000000103763d71 in QAction::triggered ()
#9  0x0000000103765154 in QAction::activate ()
#10 0x000000010371b5ea in -[QCocoaMenuLoader qtDispatcherToQAction:] ()
#11 0x00007fff84c89e9a in -[NSApplication sendAction:to:from:] ()
#12 0x00007fff84cae41e in -[NSMenuItem _corePerformAction] ()
#13 0x00007fff84cae188 in -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] ()
#14 0x00007fff84f32279 in -[NSMenu _internalPerformActionForItemAtIndex:] ()
#15 0x00007fff84de3f77 in -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] ()
#16 0x00007fff84c9095c in NSSLMMenuEventHandler ()
#17 0x00007fff84206997 in DispatchEventToHandlers ()
#18 0x00007fff84205ee6 in SendEventToEventTargetInternal ()
#19 0x00007fff84223ba9 in SendEventToEventTarget ()
#20 0x00007fff84252cd1 in SendHICommandEvent ()
#21 0x00007fff8427fb06 in SendMenuCommandWithContextAndModifiers ()
#22 0x00007fff8427fabe in SendMenuItemSelectedEvent ()
#23 0x00007fff8427f9be in FinishMenuSelection ()
#24 0x00007fff84260cb3 in MenuSelectCore ()
#25 0x00007fff84260408 in _HandleMenuSelection2 ()
#26 0x00007fff84b617dd in _NSHandleCarbonMenuEvent ()
#27 0x00007fff84b35317 in _DPSNextEvent ()
#28 0x00007fff84b347a9 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#29 0x00007fff84afa48b in -[NSApplication run] ()
#30 0x0000000103725c75 in QEventDispatcherMac::processEvents ()
#31 0x00000001048913a4 in QEventLoop::processEvents ()
#32 0x00000001048916c4 in QEventLoop::exec ()
#33 0x0000000104892ccc in QCoreApplication::exec ()
#34 0x000000010026d1e3 in main (argc=1, argv=0x7fff5fbff750) at /Users/agnes/Devel/trunk/graphics/digikam/digikam/main.cpp:213
#35 0x000000010001252c in start () at iostream:77
(gdb) 

Do you have a better trace than me ?

To run digiKam into gdb, do it like this :

bash-3.2$ pwd
/Applications/MacPorts/KDE4/digikam.app/Contents/MacOS
bash-3.2$ ls -al
total 17672
drwxr-xr-x  4 root  admin      136 23 nov 17:48 .
drwxr-xr-x  5 root  admin      170 17 nov 23:05 ..
-rwxr-xr-x  1 root  admin  9043360 23 nov 17:44 digikam
-rwxr-xr--  1 root  admin      271 23 nov 17:44 digikam.shell
bash-3.2$ gdb ./digikam
GNU gdb 6.3.50-20050815 (Apple version gdb-1472) (Wed Jul 21 10:53:12 UTC 2010)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries .............
#run
...
CRASH HERE
...
#bt

Gilles
Comment 3 caulier.gilles 2011-11-11 17:42:36 UTC
*** Bug 286286 has been marked as a duplicate of this bug. ***
Comment 4 Grégoire Verlut 2011-11-11 17:59:12 UTC
Gilles, was my Bt on Bug 286286 helpful?

do you need more info?



(sorry I searched for "fullscreen" on not "full screen"....)
Comment 5 caulier.gilles 2011-11-11 18:01:49 UTC
No there is no info from digiKam in your trace.

On my mac, i can reproduce the trace without more details. i think it's a Qt bug as well... Or perhaps KDE. It's difficult to identify the origin of problem.

Gilles Caulier
Comment 6 Grégoire Verlut 2011-11-11 19:22:40 UTC
ok,

I don't know if this helps; but i tried the slideshow, which is also in full screen mode, and it works perfectly!
Do you handle the full screen mode from the slideshow differently than the simple full screen mode?


Grégoire
Comment 7 caulier.gilles 2011-11-11 22:05:15 UTC
Slideshow is a QWidget using special attribute to be displayed over Desktop manager.

When you toggle in full screen mode, it's different. It's a call to KDE API to switch KApplication instance in a special mode. I think the problem is here and is relevant of KDE or Qt. This is why there is no code from digiKam in GDB backtrace.

Gilles Caulier
Comment 8 caulier.gilles 2012-02-25 08:48:56 UTC
*** Bug 294791 has been marked as a duplicate of this bug. ***
Comment 9 caulier.gilles 2013-02-23 23:21:50 UTC
Git commit 431746f19f8db30f3e2011fee2b732880e52cfaf by Gilles Caulier.
Committed on 24/02/2013 at 00:18.
Pushed by cgilles into branch 'master'.

AlbumGUI, Editor, BQM, ImportUI, LT:
simplify fullscreen action handling to use KToggleFullScreenAction
use toggled(bool) signal from action to prevent multiple fire to slotToggleFullScreen()
use KToggleFullScreenAction::setFullScreen() instead to change QWidget properties to swith on/off to full screen.
Fix crash under MACOSX
FIXED-IN: 3.1.0

M  +72   -71   digikam/main/digikamapp.cpp
M  +3    -3    digikam/main/digikamapp.h
M  +5    -8    digikam/main/digikamapp_p.h
M  +120  -118  utilities/imageeditor/editor/editorwindow.cpp
M  +4    -4    utilities/imageeditor/editor/editorwindow.h
M  +1    -1    utilities/imageeditor/editor/editorwindow_p.h
M  +1    -1    utilities/imageeditor/main/imagewindow.cpp
M  +1    -1    utilities/imageeditor/main/imagewindow.h
M  +1    -1    utilities/imageeditor/main/imagewindow_p.h
M  +90   -87   utilities/importui/main/importui.cpp
M  +2    -2    utilities/importui/main/importui.h
M  +4    -4    utilities/importui/main/importui_p.h
M  +95   -90   utilities/lighttable/lighttablewindow.cpp
M  +4    -4    utilities/lighttable/lighttablewindow.h
M  +7    -7    utilities/lighttable/lighttablewindow_p.h
M  +84   -83   utilities/queuemanager/main/queuemgrwindow.cpp
M  +2    -2    utilities/queuemanager/main/queuemgrwindow.h
M  +43   -43   utilities/queuemanager/main/queuemgrwindow_p.h

http://commits.kde.org/digikam/431746f19f8db30f3e2011fee2b732880e52cfaf