fix(titlebar): window control not working (#502)

This commit is contained in:
Yannis Petitot
2022-08-14 21:54:40 +02:00
committed by GitHub
parent 7befd84cfa
commit 8b941b6860
3 changed files with 33 additions and 15 deletions
+3 -13
View File
@@ -30,19 +30,9 @@ let make = (~height: int) => {
let _title = playingState.isPlaying ? `Beatconnect \\u23F5 ${songTitle}bot` : "Beatconnect"
// let window = Remote.getCurrentWindow(Remote.remote)
// window->BrowserWindow.setTitle(title)
// let onMinimizeClick = _e => BrowserWindow.minimize(window)
// let onCloseClick = _e => BrowserWindow.close(window)
// let onMaximizeClick = _e =>
// BrowserWindow.isMaximized(window)
// ? BrowserWindow.unmaximize(window)
// : BrowserWindow.maximize(window)
let onMinimizeClick = _ => ()
let onCloseClick = _ => ()
let onMaximizeClick = _ => ()
let onMinimizeClick = _ => IPCRenderer.send(MINIMIZE_WINDOW)
let onCloseClick = _ => IPCRenderer.send(CLOSE_WINDOW)
let onMaximizeClick = _ => IPCRenderer.send(MAXIMIZE_WINDOW)
<div className={makeWrapperStyle()}>
<div className={makeControlStyle(~spacer=true, ())} onClick=onMinimizeClick>
+24 -2
View File
@@ -1,10 +1,10 @@
const log = require('electron-log');
const { error } = require('electron-log');
const { ipcMain, dialog, shell } = require('electron');
const { ipcMain, dialog, shell, BrowserWindow } = require('electron');
const fs = require('fs').promises;
const { join } = require('path');
const { downloadAndSetWallpaper } = require('./wallpaper');
const { readCollectionDB, writeCollectionDB } = require('./helpers/osuCollections/collections.utils');
const { readCollectionDB } = require('./helpers/osuCollections/collections.utils');
const startPullingOsuState = require('./threads/osuIsRunning');
const scanOsuDb = require('./threads/osuSongsScan');
const { exists } = require('./helpers');
@@ -86,3 +86,25 @@ ipcMain.handle('is-dir', async (event, path) => {
});
ipcMain.handle('dialog', (event, method, params) => dialog[method](params));
ipcMain.on('MINIMIZE_WINDOW', () => {
const window = BrowserWindow.getFocusedWindow();
if (window) {
window.minimize();
}
});
ipcMain.on('MAXIMIZE_WINDOW', () => {
const window = BrowserWindow.getFocusedWindow();
if (window) {
if (window.isMaximized()) window.unmaximize();
else window.maximize();
}
});
ipcMain.on('CLOSE_WINDOW', () => {
const window = BrowserWindow.getFocusedWindow();
if (window) {
window.close();
}
});
+6
View File
@@ -15,11 +15,17 @@ type updateThumbBarData = {
type channel =
| UPDATE_THUMB_BAR(updateThumbBarData)
| UPDATE_PLAY_STATE(bool)
| CLOSE_WINDOW
| MINIMIZE_WINDOW
| MAXIMIZE_WINDOW
let send = channel =>
switch channel {
| UPDATE_THUMB_BAR(data) => send(ipcRenderer, "UPDATE_THUMB_BAR", data)
| UPDATE_PLAY_STATE(isPlaying) => send(ipcRenderer, "UPDATE_PLAY_STATE", isPlaying)
| CLOSE_WINDOW => send(ipcRenderer, "CLOSE_WINDOW", ())
| MINIMIZE_WINDOW => send(ipcRenderer, "MINIMIZE_WINDOW", ())
| MAXIMIZE_WINDOW => send(ipcRenderer, "MAXIMIZE_WINDOW", ())
}
let on = (channel, callback) => on(ipcRenderer, channel, callback)