Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions examples/nswindow_example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ project(nswindow_example VERSION 0.0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Enable Objective-C++
enable_language(OBJCXX)
# Enable Objective-C++ (macOS only)
if(APPLE)
enable_language(OBJCXX)
endif()

# Add example program
add_executable(nswindow_example
Expand Down
6 changes: 3 additions & 3 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ file(GLOB COMMON_SOURCES "*.cpp")
list(FILTER COMMON_SOURCES EXCLUDE REGEX "platform/*")

# Platform-specific source files
if(LINUX)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
file(GLOB PLATFORM_SOURCES "platform/linux/*_linux.cpp")
# Find GTK package for Linux
find_package(PkgConfig REQUIRED)
Expand Down Expand Up @@ -49,14 +49,14 @@ target_include_directories(libnativeapi PUBLIC
$<INSTALL_INTERFACE:include>
)

if (LINUX)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_include_directories(libnativeapi PUBLIC ${GTK_INCLUDE_DIRS})
endif ()

# Link required frameworks and libraries
if(APPLE)
target_link_libraries(libnativeapi PUBLIC "-framework Cocoa")
target_compile_options(libnativeapi PRIVATE "-x" "objective-c++")
elseif (LINUX)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_libraries(libnativeapi PUBLIC PkgConfig::GTK)
endif ()
14 changes: 8 additions & 6 deletions src/platform/linux/display_manager_linux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,18 @@ static Display CreateDisplayFromGdkMonitor(GdkMonitor* monitor,
GdkRectangle frame;
gdk_monitor_get_geometry(monitor, &frame);

display.width = frame.width;
display.height = frame.height;
display.size.width = frame.width;
display.size.height = frame.height;
display.position.x = frame.x;
display.position.y = frame.y;

GdkRectangle workarea_rect;
gdk_monitor_get_workarea(monitor, &workarea_rect);

display.visibleSizeWidth = workarea_rect.width;
display.visibleSizeHeight = workarea_rect.height;
display.visiblePositionX = workarea_rect.x;
display.visiblePositionY = workarea_rect.y;
display.workArea.width = workarea_rect.width;
display.workArea.height = workarea_rect.height;
display.workArea.x = workarea_rect.x;
display.workArea.y = workarea_rect.y;

display.scaleFactor = gdk_monitor_get_scale_factor(monitor);

Expand Down
Loading
Loading