@@ -199,6 +199,18 @@ void QtHaikuWindow::MessageReceived(BMessage* msg)
199
199
return ;
200
200
}
201
201
switch (msg->what ) {
202
+ case kCloseWindow :
203
+ {
204
+ Quit ();
205
+ return ;
206
+ }
207
+ case kSetTitle :
208
+ {
209
+ const char *title = msg->FindString (" title" );
210
+ if (title != NULL )
211
+ SetTitle (title);
212
+ return ;
213
+ }
202
214
case kQuitApplication :
203
215
{
204
216
be_app->PostMessage (B_QUIT_REQUESTED);
@@ -295,7 +307,7 @@ QHaikuWindow::QHaikuWindow(QWindow *wnd)
295
307
, m_visible(false )
296
308
, m_pendingGeometryChangeOnShow(true )
297
309
{
298
- connect (m_window, SIGNAL (quitRequested ()), SLOT (platformWindowQuitRequested ()), Qt::BlockingQueuedConnection );
310
+ connect (m_window, SIGNAL (quitRequested ()), SLOT (platformWindowQuitRequested ()));
299
311
connect (m_window, SIGNAL (windowMoved (QPoint)), SLOT (platformWindowMoved (QPoint)));
300
312
connect (m_window, SIGNAL (windowResized (QSize)), SLOT (platformWindowResized (QSize)));
301
313
connect (m_window, SIGNAL (windowActivated (bool )), SLOT (platformWindowActivated (bool )));
@@ -331,10 +343,10 @@ QHaikuWindow::QHaikuWindow(QWindow *wnd)
331
343
}
332
344
333
345
334
- QHaikuWindow::~QHaikuWindow ()
346
+ void QHaikuWindow::destroy ()
335
347
{
336
- m_window->Lock ( );
337
- m_window-> Quit () ;
348
+ m_window->PostMessage ( kCloseWindow );
349
+ m_window = NULL ;
338
350
}
339
351
340
352
@@ -450,7 +462,9 @@ void QHaikuWindow::setWindowTitle(const QString &title)
450
462
{
451
463
QString newTitle = QPlatformWindow::formatWindowTitle (title, QStringLiteral (" - " ));
452
464
newTitle = QPlatformTheme::removeMnemonics (newTitle).trimmed ();
453
- m_window->SetTitle (newTitle.toUtf8 ().constData ());
465
+ BMessage message (kSetTitle );
466
+ message.AddString (" title" , newTitle.toUtf8 ().constData ());
467
+ m_window->PostMessage (&message);
454
468
}
455
469
456
470
@@ -568,8 +582,6 @@ void QHaikuWindow::setVisible(bool visible)
568
582
if (visible == m_visible)
569
583
return ;
570
584
571
- m_window->Lock ();
572
-
573
585
if (visible) {
574
586
if (window ()->type () == Qt::Popup) {
575
587
m_window->SetWorkspaces (B_CURRENT_WORKSPACE);
@@ -584,7 +596,6 @@ void QHaikuWindow::setVisible(bool visible)
584
596
setWindowFlags (window ()->flags ());
585
597
m_window->Hide ();
586
598
}
587
- m_window->Unlock ();
588
599
589
600
if (visible) {
590
601
if (window ()->type () != Qt::ToolTip)
0 commit comments