[haiku-commits] haiku: hrev53331 - src/build/libbe/app headers/build/private/app src/kits/app

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 2 Aug 2019 20:41:14 -0400 (EDT)

hrev53331 adds 1 changeset to branch 'master'
old head: 4534d86d216fc502fd3a764163e5b9d533026c56
new head: 2846db2e997b3bcd4e8e22fce7e5ac55ce8baa18
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=2846db2e997b+%5E4534d86d216f

----------------------------------------------------------------------------

2846db2e997b: Implement is_app_showing_modal_window()
  
  Also do some cleanup in private headers, I can't imagine why the build
  libraries would need this function.
  
  Change-Id: Ib08810b6efe4738dad596a735d741582a3781b28
  Reviewed-on: https://review.haiku-os.org/c/1670
  Reviewed-by: Ryan Leavengood <leavengood@xxxxxxxxx>

                                  [ CodeforEvolution <secundaja@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev53331
Commit:      2846db2e997b3bcd4e8e22fce7e5ac55ce8baa18
URL:         https://git.haiku-os.org/haiku/commit/?id=2846db2e997b
Author:      CodeforEvolution <secundaja@xxxxxxxxx>
Date:        Thu Aug  1 04:38:03 2019 UTC
Committer:   waddlesplash <waddlesplash@xxxxxxxxx>
Commit-Date: Sat Aug  3 00:41:10 2019 UTC

----------------------------------------------------------------------------

3 files changed, 45 insertions(+), 69 deletions(-)
headers/build/private/app/AppMisc.h | 35 ++++++------------------
src/build/libbe/app/AppMisc.cpp     | 47 ++++++---------------------------
src/kits/app/AppMisc.cpp            | 32 +++++++++++++++++++---

----------------------------------------------------------------------------

diff --git a/headers/build/private/app/AppMisc.h 
b/headers/build/private/app/AppMisc.h
index 3a7cefcd60..ec6ad7e57c 100644
--- a/headers/build/private/app/AppMisc.h
+++ b/headers/build/private/app/AppMisc.h
@@ -1,28 +1,11 @@
-//------------------------------------------------------------------------------
-//     Copyright (c) 2001-2002, OpenBeOS
-//
-//     Permission is hereby granted, free of charge, to any person obtaining a
-//     copy of this software and associated documentation files (the 
"Software"),
-//     to deal in the Software without restriction, including without 
limitation
-//     the rights to use, copy, modify, merge, publish, distribute, sublicense,
-//     and/or sell copies of the Software, and to permit persons to whom the
-//     Software is furnished to do so, subject to the following conditions:
-//
-//     The above copyright notice and this permission notice shall be included 
in
-//     all copies or substantial portions of the Software.
-//
-//     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
OR
-//     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-//     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
THE
-//     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-//     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-//     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-//     DEALINGS IN THE SOFTWARE.
-//
-//     File Name:              AppMisc.h
-//     Author:                 Ingo Weinhold (bonefish@xxxxxxxxxxxx)
-//     Description:    Miscellaneous private functionality.
-//------------------------------------------------------------------------------
+/*
+ * Copyright 2001-2019 Haiku, Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Ingo Weinhold, bonefish@xxxxxxxxxxxx
+ *             Jacob Secunda
+ */
 
 #ifndef _APP_MISC_H
 #define _APP_MISC_H
@@ -45,8 +28,6 @@ thread_id main_thread_for(team_id team);
 
 bool is_running_on_haiku();
 
-bool is_app_showing_modal_window(team_id team);
-
 } // namespace BPrivate
 
 // _get_object_token_
diff --git a/src/build/libbe/app/AppMisc.cpp b/src/build/libbe/app/AppMisc.cpp
index 634839eff6..26aa3a90e4 100644
--- a/src/build/libbe/app/AppMisc.cpp
+++ b/src/build/libbe/app/AppMisc.cpp
@@ -1,28 +1,11 @@
-//------------------------------------------------------------------------------
-//     Copyright (c) 2001-2002, OpenBeOS
-//
-//     Permission is hereby granted, free of charge, to any person obtaining a
-//     copy of this software and associated documentation files (the 
"Software"),
-//     to deal in the Software without restriction, including without 
limitation
-//     the rights to use, copy, modify, merge, publish, distribute, sublicense,
-//     and/or sell copies of the Software, and to permit persons to whom the
-//     Software is furnished to do so, subject to the following conditions:
-//
-//     The above copyright notice and this permission notice shall be included 
in
-//     all copies or substantial portions of the Software.
-//
-//     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
OR
-//     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-//     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
THE
-//     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-//     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-//     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-//     DEALINGS IN THE SOFTWARE.
-//
-//     File Name:              AppMisc.cpp
-//     Author:                 Ingo Weinhold (bonefish@xxxxxxxxxxxx)
-//     Description:    Miscellaneous private functionality.
-//------------------------------------------------------------------------------
+/*
+ * Copyright 2001-2019 Haiku, Inc. All rights reserved.
+ * Distributed under the terms of the MIT License.
+ *
+ * Authors:
+ *             Ingo Weinhold, bonefish@xxxxxxxxxxxx
+ *             Jacob Secunda
+ */
 
 #include <string.h>
 #include <sys/utsname.h>
@@ -71,19 +54,5 @@ is_running_on_haiku()
        return (uname(&info) == 0 && strcmp(info.sysname, "Haiku") == 0);
 }
 
-// is_app_showing_modal_window
-/*!    \brief Returns whether the application identified by the supplied
-                  \c team_id is currently showing a modal window.
-       \param team the ID of the application in question.
-       \return \c true, if the application is showing a modal window, \c false
-                       otherwise.
-*/
-bool
-is_app_showing_modal_window(team_id team)
-{
-       // TODO: Implement!
-       return true;
-}
-
 } // namespace BPrivate
 
diff --git a/src/kits/app/AppMisc.cpp b/src/kits/app/AppMisc.cpp
index e996190ab8..7f408175ea 100644
--- a/src/kits/app/AppMisc.cpp
+++ b/src/kits/app/AppMisc.cpp
@@ -1,10 +1,11 @@
 /*
- * Copyright 2001-2015, Haiku, Inc.
+ * Copyright 2001-2019, Haiku, Inc.
  * Distributed under the terms of the MIT License.
  *
  * Authors:
  *             Axel Dörfler, axeld@xxxxxxxxxxxxxxxx
  *             Ingo Weinhold, bonefish@@users.sf.net
+ *             Jacob Secunda
  */
 
 
@@ -19,9 +20,12 @@
 #include <image.h>
 #include <Messenger.h>
 #include <OS.h>
+#include <Window.h>
 
+#include <AutoDeleter.h>
 #include <ServerLink.h>
 #include <ServerProtocol.h>
+#include <WindowInfo.h>
 
 
 namespace BPrivate {
@@ -171,8 +175,30 @@ main_thread_for(team_id team)
 bool
 is_app_showing_modal_window(team_id team)
 {
-       // TODO: Implement!
-       return true;
+       int32 tokenCount;
+       int32* tokens = get_token_list(team, &tokenCount);
+
+       if (tokens != NULL) {
+               MemoryDeleter tokenDeleter(tokens);
+
+               for (int32 index = 0; index < tokenCount; index++) {
+                       client_window_info* matchWindowInfo = 
get_window_info(tokens[index]);
+                       if (matchWindowInfo == NULL) {
+                               // That window probably closed. Just go to the 
next one.
+                               continue;
+                       }
+
+                       window_feel theFeel = 
(window_feel)matchWindowInfo->feel;
+                       free(matchWindowInfo);
+
+                       if (theFeel == B_MODAL_SUBSET_WINDOW_FEEL
+                               || theFeel == B_MODAL_APP_WINDOW_FEEL
+                               || theFeel == B_MODAL_ALL_WINDOW_FEEL)
+                               return true;
+               }
+       }
+
+       return false;
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev53331 - src/build/libbe/app headers/build/private/app src/kits/app - waddlesplash