|
|
| (One intermediate revision by the same user not shown) |
| Line 1: |
Line 1: |
| If you need the way to force some rotation of your N900 screen, this is for you.
| | #REDIRECT [[Using Fremantle widgets#Forcing screen rotation]] |
| | |
| /*
| |
| gcc rotate.c -lX11 -lXrandr
| |
| */
| |
| #include <X11/Xlib.h>
| |
| #include <X11/extensions/Xrandr.h>
| |
|
| |
| static void set_rotation (Rotation r_to) {
| |
| Rotation r;
| |
| int screen = -1;
| |
| XRRScreenConfiguration* config;
| |
| int current_size=0;
| |
|
| |
| Display* display;
| |
| Window rootWindow;
| |
|
| |
| display = XOpenDisplay(":0");
| |
| if (display == NULL) {
| |
| return;
| |
| }
| |
|
| |
| screen = DefaultScreen(display);
| |
| rootWindow = RootWindow(display, screen);
| |
| XRRRotations(display, screen, &r);
| |
| config = XRRGetScreenInfo(display, rootWindow);
| |
| current_size = XRRConfigCurrentConfiguration (config, &r);
| |
| XRRSetScreenConfig(display, config, rootWindow, current_size, r_to, CurrentTime);
| |
| }
| |
|
| |
| int main (int argc, char *argv[]) {
| |
| set_rotation(RR_Rotate_90);
| |
| //set_rotation(RR_Rotate_270);
| |
| //set_rotation(RR_Rotate_180);
| |
| //set_rotation(RR_Rotate_0);
| |
| }
| |