Merge pull request #60916 from bruvzg/win_save_icon
This commit is contained in:
commit
055ac8bb78
2 changed files with 10 additions and 3 deletions
|
@ -1106,6 +1106,10 @@ void DisplayServerWindows::_update_window_style(WindowID p_window, bool p_repain
|
|||
SetWindowLongPtr(wd.hWnd, GWL_STYLE, style);
|
||||
SetWindowLongPtr(wd.hWnd, GWL_EXSTYLE, style_ex);
|
||||
|
||||
if (icon.is_valid()) {
|
||||
set_icon(icon);
|
||||
}
|
||||
|
||||
SetWindowPos(wd.hWnd, wd.always_on_top ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | ((wd.no_focus || wd.is_popup) ? SWP_NOACTIVATE : 0));
|
||||
|
||||
if (p_repaint) {
|
||||
|
@ -1895,9 +1899,11 @@ void DisplayServerWindows::set_icon(const Ref<Image> &p_icon) {
|
|||
_THREAD_SAFE_METHOD_
|
||||
|
||||
ERR_FAIL_COND(!p_icon.is_valid());
|
||||
Ref<Image> icon = p_icon->duplicate();
|
||||
if (icon->get_format() != Image::FORMAT_RGBA8) {
|
||||
icon->convert(Image::FORMAT_RGBA8);
|
||||
if (icon != p_icon) {
|
||||
icon = p_icon->duplicate();
|
||||
if (icon->get_format() != Image::FORMAT_RGBA8) {
|
||||
icon->convert(Image::FORMAT_RGBA8);
|
||||
}
|
||||
}
|
||||
int w = icon->get_width();
|
||||
int h = icon->get_height();
|
||||
|
|
|
@ -399,6 +399,7 @@ class DisplayServerWindows : public DisplayServer {
|
|||
HHOOK mouse_monitor = nullptr;
|
||||
List<WindowID> popup_list;
|
||||
uint64_t time_since_popup = 0;
|
||||
Ref<Image> icon;
|
||||
|
||||
WindowID _create_window(WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Rect2i &p_rect);
|
||||
WindowID window_id_counter = MAIN_WINDOW_ID;
|
||||
|
|
Loading…
Reference in a new issue