Commit graph

73 commits

Author SHA1 Message Date
Jules Blok
03e1bd0995 Limit Borderless Fullscreen to Windows systems. 2014-10-09 11:30:26 +02:00
Jules Blok
39f421d45d Support the borderless fullscreen option in all backends. 2014-10-07 16:48:43 +02:00
Jules Blok
7344f752b7 Replace BorderlessFullscreenEnabled by ExclusiveFullscreenEnabled.
Special handling was associated with this function, which only applies to exclusive fullscreen.
2014-10-07 16:43:32 +02:00
Rachel Bryk
f6c6f03cce Add on screen frame counter. 2014-09-30 18:49:44 -04:00
comex
8fed5aa492 Fix focus detection on OS X by replacing wxGetActiveWindow with wxWindow::FindFocus.
wxGetActiveWindow is implemented as "return NULL" on OS X, while
wxWindow::FindFocus works.  On Windows, the difference is in the use of
GetActiveWindow() vs. GetForegroundWindow().  A MSDN comment says:

> A system has only one active window, which GetForegroundWindow()
> returns. GetActiveWindow() seems to return the same window as
> GetForegroundWindow() if the foreground window belongs to the current
> thread. Otherwise, it always returns null, rather than the topmost
> window of the calling thread.

Since we are on the GUI thread, it shouldn't make any difference.
2014-09-30 01:35:48 -04:00
Rachel Bryk
5dc88a2673 Add hotkeys to select save state slots and to save/load the currently selected slots. 2014-09-16 19:19:41 -04:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
skidau
dae162c2b5 Merge pull request #971 from TurboK234/EFB_copies_togglefix
Remove "EFB Copies Disabled" option from hotkey toggling cycle.
2014-09-08 17:05:52 +10:00
Zhuowei Zhang
e0a909c076 Update debugger button states at startup to disable non-functional JIT menu entries 2014-09-06 23:38:22 -04:00
Shawn Hoffman
9a9fd8752a Quiet initialization order warning in CFrame 2014-09-06 13:01:24 -07:00
Shawn Hoffman
7308b809d8 Fix render to main crashing in fullscreen.
When hiding the menubar (for going fullscreen with render to main),
keep a functionally-duplicate menubar around for servicing menubar
actions.
2014-09-05 22:21:09 -07:00
TurboK234
b7ecaf6111 Added OSD comment if EFB Copies are disabled. 2014-09-05 01:42:40 +03:00
TurboK234
18e13aacf7 Remove "EFB Copies Disabled" option from hotkey toggling cycle. 2014-09-05 00:12:04 +03:00
Shawn Hoffman
fd2343e431 Re-implement hiding of the menubar in fullscreen with render to main. 2014-09-03 03:02:13 -07:00
Jasper St. Pierre
1e464d1a25 Frame: Actually call UpdateTitle
This was obviously what I meant to do, but due to a typo, called
SetTitle instead, causing the main game list title to be set instead.
2014-08-22 17:28:02 -04:00
Jasper St. Pierre
6dbafa9238 Core: Move the titlebar / statusbar abstraction to DolphinWX
The concept of a "title bar" / "status bar" shouldn't be a core concept,
so remove the Host_UpdateStatusBar function, and move the code handles
whether to update the status bar or titlebar into DolphinWX.
2014-08-19 10:37:47 -04:00
Jasper St. Pierre
6e312dce91 Core: Remove Core::GetWindowHandle
Finally, it's unused. Whoa.
2014-08-19 10:05:58 -04:00
archshift
7af80c7712 Disable toolbar toggle in main window fullscreen 2014-08-13 02:21:21 -07:00
archshift
b451f561ba Hide toolbar upon going fullscreen, rendering to main window. 2014-08-12 17:47:25 -07:00
shuffle2
7b9c8da468 Merge pull request #726 from Armada651/ogl-exclusive
CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL.
2014-08-12 14:55:18 -07:00
shuffle2
d704ebdb40 Merge pull request #691 from Armada651/veto_fix
CFrame: Handle close events that can't be vetoed.
2014-08-12 14:46:01 -07:00
archshift
d46ca557b8 Re-ordered initialization of m_ToolBar and m_SavedPerspectives 2014-08-09 14:51:59 -07:00
archshift
b81617fba1 Removed TBDebug, using TBMain instead. Fixed debugger assert. 2014-08-09 03:40:56 -07:00
archshift
b8b72861b5 Removed AuiTB, moved functions to menubar (Debug->Perspectives) 2014-08-09 03:40:56 -07:00
Jasper St. Pierre
354f223f77 X11Utils: Remove unneeded SendButtonEvent / SendKeyEvent utilities
This was used to send fake button or key events to every backend to
implement freelook. When I ported these to be based on wx events in
commit 5248211, I didn't realize that these were now unused, so I didn't
remove them. Do that now.
2014-08-06 15:07:25 -04:00
Jules Blok
857c116210 CFrame: Add fullscreen window styles to enable exclusive mode in OpenGL.
This is not implemented within the backend, but relies purely on driver heuristics.
2014-08-03 23:36:54 +02:00
Jules Blok
b6e7e0d57f CFrame: Only re-assign focus when "Render to main" is enabled.
It may cause fullscreen loops and since m_RenderFrame == m_RenderParent now it's not necessary to re-assign focus anymore.
2014-08-03 13:37:19 +02:00
Jules Blok
3b5625c76b VideoConfig: Ignore Borderless Fullscreen setting when the backend does not support exclusive fullscreen.
This was expected to be handled by VerifyValidity(), but that only verifies the validity of the INI files.
2014-07-30 12:15:58 +02:00
Jules Blok
5bbd34637b CFrame: Don't check the video config fullscreen setting.
Checking this flag could sometimes incorrectly have the UI assume fullscreen is already off when we're still exiting.
2014-07-30 12:15:32 +02:00
Jules Blok
4501aeefbe CFrame: Check borderless fullscreen setting before enabling exclusive fullscreen in the video config.
Fixes a bug where "Use Fullscreen" would initialize into exclusive fullscreen regardless of the borderless fullscreen setting.

Also relieves the need for the video renderer to check the borderless fullscreen setting each time.
2014-07-30 12:15:26 +02:00
Jules Blok
e07c06cb16 CFrame: Handle close events that can't be vetoed.
This can happen during shutdown.

As long as we don't call event.Skip() the CFrame won't be closed yet, so even if we can't veto the shutdown will still happen in the correct order.
2014-07-29 12:36:10 +02:00
Jules Blok
1f24122d35 Frame: Only prevent exclusive fullscreen switches when the emulator is paused.
This fixes the "Use Fullscreen" setting in which case the switch is done while the emulator is uninitialized.
2014-07-27 00:08:27 +02:00
Jules Blok
6724ce6275 Cosmetic changes based on feedback on PR #506. 2014-07-26 13:04:39 +02:00
Jules Blok
eea7086b23 CFrame: Prevent fullscreen switches if the renderer is halted. 2014-07-26 12:45:19 +02:00
Jules Blok
0c81494c89 Frame: Make the fullscreen transitions more reliable. 2014-07-21 20:50:49 +02:00
Jules Blok
009b4dd376 Exit exclusive fullscreen when the stop confirmation is shown.
Also have the renderer remember its own fullscreen state. This is done to prevent a case where we exit exclusive fullscreen through the configuration and a focus shift at the same time. In this case the renderer would fail to detect that the fullscreen state was changed.
2014-07-21 20:50:48 +02:00
Jules Blok
36ea1890c8 Let the Renderer decide when to exit fullscreen.
This ensures the transition from/to exclusive mode happens while the RenderFrame is fullscreen.

This prevents fullscreen loops and relieves us of having to restore the window size after we exit fullscreen.
2014-07-21 17:11:13 +02:00
Jules Blok
77bc879384 D3D: Add exclusive fullscreen support. 2014-07-19 21:14:44 +02:00
Jules Blok
8d76dca30d Frame: Make RendererHasFocus() compatible with the new window structure. 2014-07-19 21:14:38 +02:00
Jules Blok
66fec6d0bd Remove CPanel.
Let the RenderFrame handle those messages.
2014-07-19 21:13:15 +02:00
Jasper St. Pierre
44307c9508 Host: Add a new "UIHasFocus" hook to determine if the UI has focus
We can't use RendererHasFocus for this purpose because of some issues
with exclusive fullscreen, and the new RendererHasFocus implementation
didn't work for non-Render to Main Window cases, since the renderer
window wasn't managed by wx.
2014-07-16 10:27:21 -04:00
Jasper St. Pierre
ee087f5953 Revert "Frame: Fix RendererHasFocus"
This reverts commit ff918df889.

This changed it from "RendererHasFocus" to "UIHasFocus", which is
wrong. Specifically, it broke for non-Render to Main Window cases where
the renderer window isn't managed by wx. It also broke the pending
exclusive fullscreen support, which checks this function to determine if
the renderer is on top so it can full-screen it.

We'll add a new hook, "UIHasFocus", in the next commit.
2014-07-16 10:26:06 -04:00
Jasper St. Pierre
ff918df889 Frame: Fix RendererHasFocus
The logic of RendererHasFocus was extremely convoluted beforehand and
was too brittle and broke in certain circumstances, like when the
GCPad window was active. Simplify it and leave a comment explaining the
new logic. This fixes the GCPad window not working when Background Input
is unchecked.
2014-07-12 07:29:49 -04:00
degasus
81ed17be53 avoid the extern keyword in .cpp files 2014-07-11 16:10:20 +02:00
degasus
22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
Lioncash
896d7e5685 Change SPADStatus struct name to GCPadStatus
Also get rid of the typedef, since this is unnecessary in C++
2014-07-10 22:02:38 -04:00
Dolphin Bot
bc655d1a82 Merge pull request #515 from Armada651/threading
Make the emulation stop asynchronous to prevent deadlocks.
2014-07-10 21:02:47 +02:00
Jules Blok
db7e746cb4 Check whether the core is running instead of checking if it is unitialized.
This properly handles the stopping state and more accurately represents the intended check.
2014-07-08 22:30:44 +02:00
Lioncash
d2ddf40ccb DolphinWX: Bind the drop handling function to the frame with Bind, not Connect. 2014-07-08 15:41:21 -04:00
Jules Blok
b30d5dccbe Frame: OnClose now handles asynchronous behaviour of DoStop(). 2014-07-08 21:21:24 +02:00