mirror of
https://github.com/HeyPuter/puter.git
synced 2025-02-03 07:48:46 +08:00
Merge pull request #112 from HeyPuter/81-allow-app-to-resize-its-window
81 allow app to resize its window
This commit is contained in:
commit
0b5e236df4
93
src/IPC.js
93
src/IPC.js
@ -333,7 +333,6 @@ window.addEventListener('message', async (event) => {
|
|||||||
initiating_app_uuid: app_uuid,
|
initiating_app_uuid: app_uuid,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
// setWindowTitle
|
// setWindowTitle
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
@ -347,6 +346,98 @@ window.addEventListener('message', async (event) => {
|
|||||||
}, '*');
|
}, '*');
|
||||||
}
|
}
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
|
// setWindowWidth
|
||||||
|
//--------------------------------------------------------
|
||||||
|
else if(event.data.msg === 'setWindowWidth' && event.data.width !== undefined){
|
||||||
|
event.data.width = parseFloat(event.data.width);
|
||||||
|
// must be at least 200
|
||||||
|
if(event.data.width < 200)
|
||||||
|
event.data.width = 200;
|
||||||
|
// set window width
|
||||||
|
$($el_parent_window).css('width', event.data.width);
|
||||||
|
// send confirmation to requester window
|
||||||
|
target_iframe.contentWindow.postMessage({
|
||||||
|
original_msg_id: msg_id,
|
||||||
|
}, '*');
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------
|
||||||
|
// setWindowHeight
|
||||||
|
//--------------------------------------------------------
|
||||||
|
else if(event.data.msg === 'setWindowHeight' && event.data.height !== undefined){
|
||||||
|
event.data.height = parseFloat(event.data.height);
|
||||||
|
// must be at least 200
|
||||||
|
if(event.data.height < 200)
|
||||||
|
event.data.height = 200;
|
||||||
|
|
||||||
|
// convert to number and set
|
||||||
|
$($el_parent_window).css('height', event.data.height);
|
||||||
|
|
||||||
|
// send confirmation to requester window
|
||||||
|
target_iframe.contentWindow.postMessage({
|
||||||
|
original_msg_id: msg_id,
|
||||||
|
}, '*');
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------
|
||||||
|
// setWindowSize
|
||||||
|
//--------------------------------------------------------
|
||||||
|
else if(event.data.msg === 'setWindowSize' && (event.data.width !== undefined || event.data.height !== undefined)){
|
||||||
|
// convert to number and set
|
||||||
|
if(event.data.width !== undefined){
|
||||||
|
event.data.width = parseFloat(event.data.width);
|
||||||
|
// must be at least 200
|
||||||
|
if(event.data.width < 200)
|
||||||
|
event.data.width = 200;
|
||||||
|
$($el_parent_window).css('width', event.data.width);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(event.data.height !== undefined){
|
||||||
|
event.data.height = parseFloat(event.data.height);
|
||||||
|
// must be at least 200
|
||||||
|
if(event.data.height < 200)
|
||||||
|
event.data.height = 200;
|
||||||
|
$($el_parent_window).css('height', event.data.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
// send confirmation to requester window
|
||||||
|
target_iframe.contentWindow.postMessage({
|
||||||
|
original_msg_id: msg_id,
|
||||||
|
}, '*');
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------
|
||||||
|
// setWindowPosition
|
||||||
|
//--------------------------------------------------------
|
||||||
|
else if(event.data.msg === 'setWindowPosition' && (event.data.x !== undefined || event.data.y !== undefined)){
|
||||||
|
// convert to number and set
|
||||||
|
if(event.data.x !== undefined){
|
||||||
|
event.data.x = parseFloat(event.data.x);
|
||||||
|
// we don't want the window to go off the left edge of the screen
|
||||||
|
if(event.data.x < 0)
|
||||||
|
event.data.x = 0;
|
||||||
|
// we don't want the window to go off the right edge of the screen
|
||||||
|
if(event.data.x > window.innerWidth - 100)
|
||||||
|
event.data.x = window.innerWidth - 100;
|
||||||
|
// set window left
|
||||||
|
$($el_parent_window).css('left', parseFloat(event.data.x));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(event.data.y !== undefined){
|
||||||
|
event.data.y = parseFloat(event.data.y);
|
||||||
|
// we don't want the window to go off the top edge of the screen
|
||||||
|
if(event.data.y < window.taskbar_height)
|
||||||
|
event.data.y = window.taskbar_height;
|
||||||
|
// we don't want the window to go off the bottom edge of the screen
|
||||||
|
if(event.data.y > window.innerHeight - 100)
|
||||||
|
event.data.y = window.innerHeight - 100;
|
||||||
|
// set window top
|
||||||
|
$($el_parent_window).css('top', parseFloat(event.data.y));
|
||||||
|
}
|
||||||
|
|
||||||
|
// send confirmation to requester window
|
||||||
|
target_iframe.contentWindow.postMessage({
|
||||||
|
original_msg_id: msg_id,
|
||||||
|
}, '*');
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------
|
||||||
// watchItem
|
// watchItem
|
||||||
//--------------------------------------------------------
|
//--------------------------------------------------------
|
||||||
else if(event.data.msg === 'watchItem' && event.data.item_uid !== undefined){
|
else if(event.data.msg === 'watchItem' && event.data.item_uid !== undefined){
|
||||||
|
@ -201,7 +201,6 @@ function UIContextMenu(options){
|
|||||||
},
|
},
|
||||||
//deactivates row when mouse leavess
|
//deactivates row when mouse leavess
|
||||||
deactivate: function (e) {
|
deactivate: function (e) {
|
||||||
console.log('deactivate')
|
|
||||||
//deactivate submenu
|
//deactivate submenu
|
||||||
if($(e).hasClass('context-menu-item-submenu')){
|
if($(e).hasClass('context-menu-item-submenu')){
|
||||||
$(`.context-menu[data-id="${menu_id}-${$(e).attr('data-action')}"]`).remove();
|
$(`.context-menu[data-id="${menu_id}-${$(e).attr('data-action')}"]`).remove();
|
||||||
|
Loading…
Reference in New Issue
Block a user