Make non-borderless mode work

This commit is contained in:
Francesco Abbate
2021-04-12 19:05:30 +02:00
parent 4de97d51fb
commit f7375924ab
4 changed files with 30 additions and 25 deletions
+2
View File
@@ -28,6 +28,8 @@ command.add(nil, {
["core:toggle-fullscreen"] = function()
fullscreen = not fullscreen
system.set_window_mode(fullscreen and "fullscreen" or "normal")
core.show_title_bar(not fullscreen)
core.title_view:configure_hit_test(not fullscreen)
end,
["core:reload-module"] = function()
+9 -7
View File
@@ -400,13 +400,6 @@ function core.init()
end
end
core.window_borderless = false
core.hit_test_title_height = 0
if config.borderless then
system.set_window_bordered(false)
core.window_borderless = true
end
core.frame_start = 0
core.clip_rect_stack = {{ 0,0,0,0 }}
core.log_items = {}
@@ -474,6 +467,10 @@ function core.init()
command.perform("core:open-log")
end
system.set_window_bordered(not config.borderless)
core.title_view:configure_hit_test(config.borderless)
core.title_view.visible = config.borderless
if #plugins_refuse_list.userdir.plugins > 0 or #plugins_refuse_list.datadir.plugins > 0 then
local opt = {
{ font = style.font, text = "Exit", default_no = true },
@@ -696,6 +693,11 @@ function core.set_active_view(view)
end
function core.show_title_bar(show)
core.title_view.visible = show
end
function core.add_thread(f, weak_ref)
local key = weak_ref or #core.threads + 1
local fn = function() return core.try(f) end
+13 -12
View File
@@ -25,28 +25,28 @@ end
function TitleView:new()
TitleView.super.new(self)
-- FIXME: decide if visible is actually needed
self.visible = true
end
function TitleView:update()
if self.visible then
self.size.y = title_view_height()
else
self.size.y = 0
end
TitleView.super.update(self)
title_commands[2] = core.window_mode == "maximized" and restore_command or maximize_command
local title_height = self.size.y
if core.window_borderless and title_height ~= core.hit_test_title_height then
function TitleView:configure_hit_test(borderless)
if borderless then
local title_height = title_view_height()
local icon_w = style.icon_font:get_width("_")
local icon_spacing = icon_w
local controls_width = (icon_w + icon_spacing) * #title_commands + icon_spacing
system.set_window_hit_test(title_height, controls_width, icon_spacing)
core.hit_test_title_height = title_height
-- core.hit_test_title_height = title_height
else
system.set_window_hit_test()
end
end
function TitleView:update()
self.size.y = self.visible and title_view_height() or 0
title_commands[2] = core.window_mode == "maximized" and restore_command or maximize_command
TitleView.super.update(self)
end
function TitleView:draw_window_title()
local h = style.font:get_height()
@@ -95,6 +95,7 @@ end
function TitleView:on_mouse_moved(px, py, ...)
if self.size.y == 0 then return end
TitleView.super.on_mouse_moved(self, px, py, ...)
self.hovered_item = nil
local x_min, x_max, y_min, y_max = self.size.x, 0, self.size.y, 0